为什么图片的大小取决于上传的权限?

2024-04-19 20:09:40 发布

您现在位置:Python中文网/ 问答频道 /正文

使用Django框架构建Web应用程序

  • 服务器:CentOS Linux release 7.1.1503 (Core)
  • Nginx:nginx version: nginx/1.6.3
  • 古尼康:gunicorn==19.3.0
  • 丹戈:Django==1.8.4

当上传小于2.7M的图像时,一切正常。在

  1. 映像创建在应该位于的服务器上(MEDIA_ROOT
  2. 用户组和读取权限:-rw-r--r-- 1 tb360 tb360
  3. 图像由web服务器提供,没有问题

但是当图像大小超过2.7M

  1. {>应该在
  2. 图像没有读取权限:-rw------- 1 tb360 tb360
  3. web服务器不提供图像服务 原因:没有对文件的读取权限

在我刚刚添加了对这样的图像的读取权限后,它由web服务器提供,没有问题。在

本地测试时没有类似的问题。在

nginx configuration


Tags: djangocore图像服务器框架web应用程序权限
1条回答
网友
1楼 · 发布于 2024-04-19 20:09:40

Django正在使用2个上载处理程序:MemoryFileUploadHandler和{}。第一个将把上传的文件保存在ram中,然后再决定如何处理它。第二个方法将文件放在临时目录中,稍后将其移动到适当的位置。在

问题可能是因为内存处理程序只接受特定大小的文件,并且系统对临时目录具有不同的默认文件权限。将文件从temp移动到您的MEDIA_ROOT时,将保留该权限。在

您可以通过设置^{}(这样文件将始终具有适当的权限)或^{}(将临时文件存储在不同的位置,这不会设置更严格的文件权限)来解决该问题。在

相关问题 更多 >