Uczę się programowania w Internecie za pomocą Pythona, a wciąż w zasadzie przechodzę przez wykłady/samouczek.error_perm: 550 Odmowa uprawnień
Próbuję przesłać plik na serwer. To jest mój kod:
import ftplib
import sys
filename = sys.argv[1]
connect = ftplib.FTP("***.**.***.**")
connect.login("testuser","pass")
file = open(filename, "rb")
connect.storbinary("STOR " + filename, file)
connect.quit()
i to jest błąd mam:
File "C:\Users\test\putfile.py", line 8, in <module>
connect.storbinary("STOR " + filename, file)
File "C:\Python27\lib\ftplib.py", line 471, in storbinary
conn = self.transfercmd(cmd, rest)
File "C:\Python27\lib\ftplib.py", line 376, in transfercmd
return self.ntransfercmd(cmd, rest)[0]
File "C:\Python27\lib\ftplib.py", line 339, in ntransfercmd
resp = self.sendcmd(cmd)
File "C:\Python27\lib\ftplib.py", line 249, in sendcmd
return self.getresp()
File "C:\Python27\lib\ftplib.py", line 224, in getresp
raise error_perm, resp
ftplib.error_perm: 550 Permission denied.
testuser powinien mieć uprawnienia do zapisu plików, ponieważ folder jest własnością przez niego, a on ma uprawnienia roota (został dodany w pliku sudoer).
samo się dzieje, jeśli mogę dodać linię:
connect.cwd('/testfolder')
dostanę error_perm 550 Failed to change directory.
Jednak nadal mogę odczytać istniejące pliki w porządku (z connect.retrlines („Odbierz” + filename))
Jestem całkiem nowy o Pythonie jak Linux, więc nie mam pomysł co robię. Potrzebuję pomocy.
i don” t przekazać variabl e do 'retrbinary()' lub 'storbinary()', który ma ścieżkę do pliku, do którego zamierzasz pobrać plik na ** lokalnym komputerze, zamiast podania zmiennej z samą nazwą pliku na serwer, tak jak ja. : p – binarysubstrate