Django正在保存到公共媒体文件夹,错误403

Django正在保存到公共媒体文件夹,错误403,django,nginx,gunicorn,Django,Nginx,Gunicorn,因此,我有Angular+Django REST API应用程序托管在nginx+gunicorn设置中。 我正面临一个奇怪的问题。我的媒体文件夹权限设置为777,并且在我的nginx配置中: location /media { alias /home/shalin95/zona_project/zona_api/media; expires 20m; } 我有一个型号产品,带有主图片字段(图像字段将文件保存到/media/photos/)。 当我创建新实例(新产品)时,

因此,我有
Angular
+
Django REST API
应用程序托管在
nginx
+
gunicorn
设置中。
我正面临一个奇怪的问题。我的媒体文件夹权限设置为
777
,并且在我的nginx配置中:

location /media  {
     alias /home/shalin95/zona_project/zona_api/media;
     expires 20m;
}
我有一个型号
产品
,带有
主图片
字段(
图像字段
将文件保存到
/media/photos/
)。 当我创建新实例(新产品)时,有时当我想在浏览器中打开图像时,会出现
403禁止
错误

注意:这种情况偶尔会发生,不是在每个保存的实例上都会发生(没有特定的模式,只是随机发生)


感谢我去查看媒体文件夹,一切都正常(我可以看到图片),但为什么会发生这种情况(在某些情况下)?

因此我得出结论,只有当请求大于我认为的(~4MB)时才会发生此问题,因此我添加了

FILE_UPLOAD_MAX_MEMORY_SIZE = 100000000
FILE_UPLOAD_PERMISSIONS  = 0o644

settings.py
文件中,现在上传工作正常。

您不应该使用
root
而不是
alias
?尝试这样做:
root/home/shalin95/zona_project/zona_api
这真的解决了问题吗?我已经看到了别名与根目录的区别,这有什么价值吗?Ngnix有单独的用户吗?您可以在该目录上为Nginix(用户)创建acl吗?然后将acl设为默认值,这样每次创建新文件时,ngnix都可以访问它。你的发行版是什么?嗨,很抱歉回复晚了。用户是
www-data
,我正在使用Ubuntu 16.04可能
sudo chown-R www-data:www-data-media
解决了这个问题吗?