我不知道这是否可能......
假设我想将test.html
放入.zip
存档中,然后使用ftplib
上传文件,然后上传一次以便提取覆盖任何文件?
如果不可能是上传文件的最佳方式,那么重命名并覆盖原始文件名(我是否必须从ftp文件夹中删除原始test.html
?)
有什么想法吗?
ftp_session = ftplib.FTP('ftp.website.com','admin@website.com','password123')
ftp_file = open('output.html','r')
ftp_session.cwd("/folder")
ftp_session.storlines('STOR output.html', ftp_file)
ftp_file.close()
ftp_session.quit()
答案 0 :(得分:3)
FTP服务器不会解压缩你的文件,你必须在另一边运行一些东西。
如果您要替换单个文件,请将其上传为test.html.tmp
,然后将其重命名为test.html
。重命名(ftp操作)应该是原子的(文件系统明智的)并且将覆盖旧文件(实际上只是删除它并将名称指向新文件)。这样,读取文件的任何内容都将获得旧版本或新版本,但正确地说,没有阅读新文件一半的危险。
我认为使用CPanel你会运行解压缩,这很可能会打开文件进行写入,截断它然后填充内容。这不是原子的,有人可能会读取无效文件。另一方面,您可以编写一个远程运行的脚本,并按照您想要的方式执行操作。