2

我正在构建一个允许用户上传图像的应用程序。我正在使用 django-storage 和 S3 boto 将图像存储在 S3 中。我对 Django 很陌生,有几个问题。

  • 上传过程中创建的临时文件是自动删除还是我应该删除它们?如果是,那么如何?
  • 如果文件是在内存中创建的,它们会自动从内存中删除吗?
  • 当我创建 Django Imagefile 时,它​​会创建一个临时文件吗?
  • 我应该在打开文件后明确关闭文件吗?我尝试这样做,但收到错误关闭消息。我该怎么做?

简单的例子将不胜感激。

4

1 回答 1

1

引用 Django 文档:

上传数据的存储位置

在保存上传的文件之前,需要将数据存储在某个地方。

默认情况下,如果上传的文件小于 2.5 兆字节,Django 会将上传的全部内容保存在内存中。这意味着保存文件只涉及从内存读取和写入磁盘,因此非常快。

但是,如果上传的文件太大,Django 会将上传的文件写入存储在系统临时目录中的临时文件中。在类 Unix 平台上,这意味着您可以期望 Django 生成一个名为 /tmp/tmpzfp6I6.upload 之类的文件。如果上传足够大,您可以看到这个文件随着 Django 将数据流式传输到磁盘而增大。

这些细节 – 2.5 兆字节;/tmp; 等等——只是“合理的默认值”。继续阅读有关如何自定义或完全替换上传行为的详细信息。

来源:https ://docs.djangoproject.com/en/dev/topics/http/file-uploads/

于 2013-05-23T15:20:59.380 回答