ÒµÎñÐèÇ󣬯µ·±´«µÝͼƬµ½¶Ô·½ftp·þÎñÆ÷£¬Óô˴úÂë¿ÉÁ÷ʽÉÏ´«Îļþ¡£
ÉÏ´«´úÂë
1 # coding:utf-8 2 import ftplib 3 import logging 4 import traceback 5 ?6 def ftpLogin(): 7 ????lasterr = None 8 ????for i in range(3): 9 ????????try:10 ????????????ftp = ftplib.FTP()11 ????????????ftp.connect(12 ????????????????host=¡®xx.xx.xx.xx¡®,13 ????????????????port=21,14 ????????????????timeout=315 ????????????)16 ????????????ftp.login(17 ????????????????user=¡®xxx¡®,18 ????????????????passwd=¡®xxx¡®19 ????????????)20 ????????????return ftp21 ????????except Exception:22 ????????????lasterr = traceback.format_exc()23 ????print ¡®error except when ftp connect, err: %s¡® % lasterr)24 ????return None25 26 def ftpCwd(ftp=None, path=¡®/¡®):27 ????try:28 ????????ftp.cwd(path)29 ????????return True30 ????except Exception:31 ????????try:32 ????????????ftp.mkd(path)33 ????????????ftp.cwd(path)34 ????????????return True35 ????????except ftplib.error_perm:36 ????????????print ¡®error except when ftp cwd, err: %s¡® % traceback.format_exc()37 ????return False38 39 def ftpUpfile(ftp=None, srcpath=None, dstfile=None):40 ????bufsize = 102441 ????try:42 ????????with open(srcpath, ¡®rb¡®) as fp:43 ????????????cmd = ¡®STOR ¡® + dstfile44 ????????????ftp.storbinary(cmd, fp, bufsize)45 ????????????ftp.close()46 ????????????return True47 ????except Exception:48 ????????print ¡®error except when ftp put file,err: %s¡® % traceback.format_exc()49 ????return False50 51 if __name__ == ¡®__main__¡®:52 ????file = ¡®a.txt¡®53 ????ftp = ftpLogin()54 ????ftp.set_debuglevel(2)55 ????ftp.set_pasv(0)56 ????if ftp is not None:57 ????????cwd = ftpCwd(ftp=ftp, path=¡®aa¡®)58 ????????if cwd:59 ????????????ret = ftpUpfile(ftp=ftp, srcpath=file, dstfile=file)60 ????????????if ret:61 ????????????????logging.info(¡®put file success¡®)62 ????????ftp.close()
ftp debugÄÚÈÝ£º
*cmd* ¡®CWD aa¡®*put* ¡®CWD aa\r\n¡®*get* ¡®250 Directory successfully changed.\r\n¡®*resp* ¡®250 Directory successfully changed.¡®*cmd* ¡®TYPE I¡®*put* ¡®TYPE I\r\n¡®*get* ¡®200 Switching to Binary mode.\r\n¡®*resp* ¡®200 Switching to Binary mode.¡®*cmd* ¡®PORT 10,10,4,48,237,115¡®*put* ¡®PORT 10,10,4,48,237,115\r\n¡®*get* ¡®200 PORT command successful. Consider using PASV.\r\n¡®*resp* ¡®200 PORT command successful. Consider using PASV.¡®*cmd* ¡®STOR 1535340773614_\xe4\xb8\xb9\xe4\xb8\x9c_ _0_0_\xe6\x89\x93\xe7\x94\xb5\xe8\xaf\x9d_02_\xe9\x84\x82AW0613_1_SM_000006_1_1_ _ .jpg¡®*put* ¡®STOR 1535340773614_\xe4\xb8\xb9\xe4\xb8\x9c_ _0_0_\xe6\x89\x93\xe7\x94\xb5\xe8\xaf\x9d_02_\xe9\x84\x82AW0613_1_SM_000006_1_1_ _ .jpg\r\n¡®*get* ¡®150 Ok to send data.\r\n¡®*resp* ¡®150 Ok to send data.¡®*get* ¡®226 Transfer complete.\r\n¡®*resp* ¡®226 Transfer complete.¡®
µ«ÊdzöÏÖÁËÒ»¸öºÜÆæ¹ÖµÄÏÖÏó£º
ÖÐÎÄĿ¼ÉÏ´«´øÌØÊâ×Ö·ûµÄÖÐÎÄͼƬ£¬´úÂ뱨´íµ«Í¼Æ¬È´ÉÏ´«ÁËftp·þÎñÆ÷£¬ºÜ¹îÒì¡£
# python ÈÕÖ¾2018-09-06 17:49:05,794 pushProcess.py[line:76] ERROR error except when ftp put file,err: Traceback (most recent call last): ?File "/home/seemmo/tongliao_push/seemmo/business/pushProcess.py", line 72, in ftpUpfile ???ftp.storbinary(cmd, fp, bufsize) ?File "/home/seemmo/share/python/python-2.6/Lib/ftplib.py", line 452, in storbinary ???conn = self.transfercmd(cmd) ?File "/home/seemmo/share/python/python-2.6/Lib/ftplib.py", line 360, in transfercmd ???return self.ntransfercmd(cmd, rest)[0] ?File "/home/seemmo/share/python/python-2.6/Lib/ftplib.py", line 344, in ntransfercmd ???resp = self.sendcmd(cmd) ?File "/home/seemmo/share/python/python-2.6/Lib/ftplib.py", line 243, in sendcmd ???return self.getresp() ?File "/home/seemmo/share/python/python-2.6/Lib/ftplib.py", line 218, in getresp ???raise error_perm, resperror_perm: 550 1536225485000_?¡è¡ì?1?¨¦??¨¦€?623KM+600M ?¡±¡À?????¡®¨¨£¤?_ _0_0_??a?3???¡ë?¡¡§??|_02_¨¨??ALN838_1_SM_000006_1_2_ _ .jpg: Cannot create file.# ftp debug*cmd* ¡®CWD \xe6\x89\x93\xe7\x94\xb5\xe8\xaf\x9d¡®*put* ¡®CWD \xe6\x89\x93\xe7\x94\xb5\xe8\xaf\x9d\r\n¡®*get* ¡®250 Directory changed to /\xe6\x89\x93\xe7\x94\xb5\xe8\xaf\x9d\\\r\n¡®*resp* ¡®250 Directory changed to /\xe6\x89\x93\xe7\x94\xb5\xe8\xaf\x9d\\¡®*cmd* ¡®TYPE I¡®*put* ¡®TYPE I\r\n¡®*get* ¡®200 Type set to I.\r\n¡®*resp* ¡®200 Type set to I.¡®*cmd* ¡®PORT 10,102,167,241,161,167¡®*put* ¡®PORT 10,102,167,241,161,167\r\n¡®*get* ¡®200 PORT Command successful.\r\n¡®*resp* ¡®200 PORT Command successful.¡®*cmd* ¡®STOR 1536225052000_G45\xe9\xab\x98\xe9\x80\x9f479KM 100M\xe7\x94\xb1\xe4\xb8\x9c\xe5\x90\x91\xe8\xa5\xbf_ _0_0_\xe6\x89\x93\xe7\x94\xb5\xe8\xaf\x9d_02_\xe8\xbe\xbdA382KU_1_SM_000006_1_1_ _ .jpg¡®*put* ¡®STOR 1536225052000_G45\xe9\xab\x98\xe9\x80\x9f479KM 100M\xe7\x94\xb1\xe4\xb8\x9c\xe5\x90\x91\xe8\xa5\xbf_ _0_0_\xe6\x89\x93\xe7\x94\xb5\xe8\xaf\x9d_02_\xe8\xbe\xbdA382KU_1_SM_000006_1_1_ _ .jpg\r\n¡®*get* ¡®550 1536225052000_G45\xe9\xab\x98\xe9\x80\x9f479KM 100M\xe7\x94\xb1\xe4\xb8\x9c\xe5\x90\x91\xe8\xa5\xbf_ _0_0_\xe6\x89\x93\xe7\x94\xb5\xe8\xaf\x9d_02_\xe8\xbe\xbdA382KU_1_SM_000006_1_1_ _ .jpg: Cannot create file.\r\n¡®*resp* ¡®550 1536225052000_G45\xe9\xab\x98\xe9\x80\x9f479KM 100M\xe7\x94\xb1\xe4\xb8\x9c\xe5\x90\x91\xe8\xa5\xbf_ _0_0_\xe6\x89\x93\xe7\x94\xb5\xe8\xaf\x9d_02_\xe8\xbe\xbdA382KU_1_SM_000006_1_1_ _ .jpg: Cannot create file.¡®
ftpÉÏ´«Îļþ·â×°
ÔÎĵØÖ·£ºhttps://www.cnblogs.com/elephanyu/p/python.html