1

在一个视图中,我正在生成一个文件,将其保存为 Django 模型中的一个字段(一个文件字段)并返回 url:

...
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之前可以访问文件?

4

2 回答 2

0

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

于 2012-10-15T23:51:40.397 回答
0

根据boto IRC频道的几个人的说法,因为S3是分布式的,所以无法判断您上传的文件是否已经传播。但这会很快发生。希望这可以帮助其他人解决这个问题;你只需要稍等一下。不过,这可能会在未来发生变化。

于 2012-11-13T06:21:34.593 回答