![](/img/trans.png)
[英]How do I assign specific users to a user-uploaded file so they can modify it/delete it (Django + Apache)
[英]How can I wait for a file to be uploaded (via ftp), then delete it?
使用 Python,如何在删除文件之前等待文件上传(使用 ftp)?
uploadFile(ftp, filepath,namef)
# ............Here, I need to wait........
os.remove(filepath)
有任何想法吗?
您可以制作一个MD5校验和,然后上传,下载,比较MD5,如果有匹配项,则删除。
奖励:如果您的服务器支持MD5作为站点扩展,则无需下载,您只需向服务器索要MD5。
使用由Randolpho链接的ftplib,您似乎要使用:
FTP.storbinary(command, file[, blocksize, callback])
在传输文件之前,请计算传输文件需要多少块(大小为blocksize
。您的回调函数可以计算调用它的次数,并且当计数器达到块数时,您便知道整个文件已被转移,您的回调函数便可以调用删除文件的函数。
您可以使用回调函数来检查上传进度
import ftplib
ftp_uploadcomplete = False
ftp_blocksize = 1024
size_written = 0
total_size = len(myimg)
def handle(block):
global size_written
global total_size
global ftp_blocksize
size_written = size_written + ftp_blocksize if size_written + ftp_blocksize < total_size else total_size
percent_complete = size_written / total_size * 100
if (size_written==total_size):
ftp_uploadcomplete = True
print("%s percent complete" %str(percent_complete))
myftp = ftplib.FTP('host','login','pw')
myftp.storbinary("STOR file.jpg", myimg, callback=handle, blocksize=ftp_blocksize)
while (ftp_uploadcomplete==False):
time.sleep(1)
print("Upload Done!")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.