2012-10-15 34 views
1

写入到Amazon S3在视图中,我生成一个文件,保存它作为一个Django模型(一个文件字段)的字段并返回网址:检查文件已完成在Django

... 
obj.pdf.save(obj.hash_id + '.pdf', File(open(destination_path, 'r'))) 

ret = { 
    'pdfUrl': obj.pdf.url 
} 

ret = json.dumps(ret) 
return HttpResponse(ret, mimetype='text/plain') 

然后用户被重定向到ret中返回的url,有时这是一个空白的pdf,但如果他们稍后刷新一次,那么完整的pdf就在那里。我怀疑S3还没有完成将它保存下来。 Django中有没有干净的方法来确保文件在返回url之前是可访问的?

回答

0

根据boto IRC频道中的几个人,由于S3是分发的,因此无法判断您上传的文件是否已经传播。但它会很快发生。希望这可以帮助其他人解决这个问题。你只需要等一下。尽管如此,这可能会改变。

0

您自己在脚本中,通过用户的方式访问对象,并查看其大小是否满足某个阈值,或者如果知道大小,是否全部存在。