根据docs:
但是,如果上传的文件太大,Django会写 将文件上传到存储在系统临时文件中的临时文件 目录。在类似Unix的平台上,这意味着你可以期待Django 生成一个名为
/tmp/tmpzfp6I6.upload
的文件。如果 上传足够大,你可以看到这个文件的大小增长为Django 将数据流式传输到磁盘上。
所以我已经将相同的大文件多次上传到视图中并得到了这个:
vic@vic /tmp $ ls -l tmp*.upload
-rw------- 1 vic vic2 3436110 мая 14 18:31 tmpKdZrQl.upload
-rw------- 1 vic vic2 3436110 мая 14 18:31 tmpqLyBsy.upload
何时从临时目录中删除这些文件?
我想避免膨胀临时目录。
答案 0 :(得分:8)
要编写这些临时文件,Django在python中使用tempfile模块。你可以在django/core/files/temp.py
中看到django的代码。
django临时文件是tempfile.NamedTemporaryFile
。 Here's a link to the code。该构造函数中的默认设置(加上django中的代码)要求在文件关闭时删除该文件。
请注意文件句柄链接;如果它们没有被删除,很可能是您的代码泄漏了文件句柄,并且从未关闭它。