我正在构建一个允许用户上传图像的应用程序。我正在使用 django-storage 和 S3 boto 将图像存储在 S3 中。我对 Django 很陌生,有几个问题。
- 上传过程中创建的临时文件是自动删除还是我应该删除它们?如果是,那么如何?
- 如果文件是在内存中创建的,它们会自动从内存中删除吗?
- 当我创建 Django Imagefile 时,它会创建一个临时文件吗?
- 我应该在打开文件后明确关闭文件吗?我尝试这样做,但收到错误关闭消息。我该怎么做?
简单的例子将不胜感激。
我正在构建一个允许用户上传图像的应用程序。我正在使用 django-storage 和 S3 boto 将图像存储在 S3 中。我对 Django 很陌生,有几个问题。
简单的例子将不胜感激。
引用 Django 文档:
上传数据的存储位置
在保存上传的文件之前,需要将数据存储在某个地方。
默认情况下,如果上传的文件小于 2.5 兆字节,Django 会将上传的全部内容保存在内存中。这意味着保存文件只涉及从内存读取和写入磁盘,因此非常快。
但是,如果上传的文件太大,Django 会将上传的文件写入存储在系统临时目录中的临时文件中。在类 Unix 平台上,这意味着您可以期望 Django 生成一个名为 /tmp/tmpzfp6I6.upload 之类的文件。如果上传足够大,您可以看到这个文件随着 Django 将数据流式传输到磁盘而增大。
这些细节 – 2.5 兆字节;/tmp; 等等——只是“合理的默认值”。继续阅读有关如何自定义或完全替换上传行为的详细信息。
来源:https ://docs.djangoproject.com/en/dev/topics/http/file-uploads/