我正在使用pyftplib创建一个用于上传视频的ftp服务器。 ftp服务器本身位于谷歌计算引擎之上,视频文件存储在谷歌云中。 我这样做是通过使用pyftplib中的事件回调将视频从计算引擎上传到云端,当它们被发送到ftp服务器时。 同样,当客户端请求时,我正在从谷歌云中检索文件。 在下面的代码中描述的情况下,我需要回答找不到文件。 但是,我不清楚当文件不存在时预期的FTP响应是什么。是否有我不知道的特定状态代码?
def ftp_RETR(self, file):
for restricted_file_name in restricted_file_names:
if restricted_file_name.lower() in file.lower():
self.respond('200') # this is where I want to say file doesn't exist
return
try:
storage_client = storage.Client(project='myproject')
bucket = storage_client.get_bucket('myvideo')
blob = bucket.blob(file)
blob.download_to_file(open(file, 'w'))
except NotFound:
pass
FTPHandler.ftp_RETR(self, file)
谢谢
答案 0 :(得分:2)
来自RFC 959,即FTP标准:
450 Requested file action not taken.
File unavailable (e.g., file busy).