【发布时间】:2019-09-11 13:32:59
【问题描述】:
在使用网络表单将文件上传到我的应用程序目录时,我遇到了一个非常奇怪的问题。
虽然后端方面的一切似乎都运行良好,但当上传某些扩展名的文件(例如 .apk )时,权限被设置为 only root 对这些文件具有读取权限文件,而其他类型的文件(例如图像)通常可以访问。我不知道是扩展还是大尺寸(与 KB 相比大约 15 MB),但看起来后台正在进行某种过滤
更新
更多关于环境的信息
-
nginx用于代理 django 服务器的容器(gunicorn) - 部署操作系统为
Ubuntu 16.04 - Web 应用程序是 Django 2.2 项目
- 问题似乎与文件大小有关,而根本与扩展名无关
- 似乎与Django在上传完成后将文件从
/tmp目录移动到/media目录有关
【问题讨论】:
-
您没有提供有关您使用的软件的信息。哪个操作系统?哪个网络服务器?哪个网络应用程序?如果您上传 没有
.apk扩展名的 15MB 文件会怎样? -
Django 根据文件大小以不同方式处理上传。超过 2.5mb 将被写入 tmp 文件。如果您的 docker 用户是 root 而不是专用的 docker 用户,则可以解释这种行为:docs.djangoproject.com/en/2.2/topics/http/file-uploads/… 但@larsks 是对的。我们需要更多信息来帮助您解决问题。
-
对于我的帖子中缺少信息,我深表歉意。我真的认为这是一个无代码问题,这就是为什么我不想让我的问题充满不需要的信息。虽然我认为问题是@jsbeckr 在我以root 身份运行docker-compose 时提到的。不过,我会在我的帖子中添加更多信息
标签: django docker nginx docker-compose