python如何通过表单上传文件到远程FTP


AppFog 云服务器上,通过表单上传的文件只能临时存储一段时间,过了这个时间就会被清空。
而我有另一台支持外链的ftp服务器。目前想到的方法是表单上传到AppFog上,再通过ftp传输到远程服务器上。
这个过程显然很慢(只是我觉得这样会比较平滑,不用等待那么长时间)。
现在,我想减少中间这个环节,有没有办法直接上传到FTP上呢?

from ftplib import FTP

def ftp_upload(filename):
    ftp = FTP()
    ftp.set_debuglevel(2)  # 调试级别,2为显示详细信息,0为关闭
    ftp.connect(Config.FTP_HOST, '21')
    ftp.login(Config.FTP_USERNAME, Config.FTP_PASSWORD)
    ftp.cwd(Config.FTP_PATH)
    bufsize = 4096  # 缓冲块大小
    file_handler = open(filename, 'rb')
    ftp.storbinary('STOR %s' % os.path.basename(filename), file_handler, bufsize)  # 上传文件
    ftp.set_debuglevel(0)
    file_handler.close()
    ftp.quit()

python ftp

恢复正常了吗 11 years, 9 months ago

楼主如果是想解决持久化储存问题,可以将附件存入数据表。 我也在用appfog,也是这样解决的.
显示的时候从数据库中读出来显示就行。

另: 在 appfog 上传的文件并不是只保存一段时间。 如果你不更新代码,文件是不会消失的。
原因是: appfog 每次更新代码,都会先将服务器的目录清空。
解决的办法是: 每次更新,先同步代码

af pull <appname>

虽然这很蛋痛 -_-#

伊ヶ崎綾香 answered 11 years, 9 months ago

Your Answer