媒体上传django mezzanine给出HTTP错误500

时间:2014-05-27 16:25:10

标签: django amazon-web-services amazon-s3 mezzanine

我尝试使用djangomezzanine设置amazon s3和cms包django-storages以使用django-s3-folder-storage存储空间。一切都运行良好,我可以毫无问题地使用collectstatic并将我的文件上传到亚马逊,并且图像也可以像css / js一样正确地提供。

但是,如果用户尝试将图片上传到media-library或作为featured-image上传博客帖子。我在浏览器中只需HTTP Error,在控制台中只有POST /admin/media-library/upload_file/ HTTP/1.1" 500 146580。这是DEBUG=True设置的,所以我很惊讶没有更多的跟踪/反馈。

我不知道该怎么做才能修复甚至开始调试为什么会这样,有人帮忙吗?

我的相关settings.py是:

AWS_STORAGE_BUCKET_NAME = 'my_bucket'
AWS_SECRET_ACCESS_KEY = 'my_key'
AWS_ACCESS_KEY_ID = 'my_id'

AWS_PRELOAD_METADATA = True 
AWS_QUERYSTRING_AUTH = False
AWS_S3_SECURE_URLS = False
AWS_S3_ENCRYPTION =  False
from boto.s3.connection import ProtocolIndependentOrdinaryCallingFormat
AWS_S3_CALLING_FORMAT = ProtocolIndependentOrdinaryCallingFormat()

DEFAULT_FILE_STORAGE = 's3_folder_storage.s3.DefaultStorage'
DEFAULT_S3_PATH = "media"
MEDIA_ROOT = ''
MEDIA_URL = ''

STATICFILES_STORAGE = 's3_folder_storage.s3.StaticStorage'
STATIC_S3_PATH = "static"
STATIC_ROOT = "/%s/" % STATIC_S3_PATH
STATIC_URL = '//s3.amazonaws.com/%s/static/' % AWS_STORAGE_BUCKET_NAME
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。对我来说问题是在我的设置中我需要更改此目录(及其所有子目录)的权限,以便由我的nginx.conf使用的用户拥有:

/var/lib/nginx

为了纠正这个问题我做了:

sudo chown -R <myuser>:<myuser> /var/lib/nginx

myuser是nginx.conf中指定的nginx用户。

在上传到Amazon S3之前,将您上传的图片放在那里的临时文件夹中,并且此临时文件夹没有允许此操作的正确权限。

让我在正确的轨道上解决这个问题的原因是我将调试更改为DEBUG = True,然后当我在错误日志中收到500错误时,我看到了:

[crit] 26489#0: *374 open() "/var/lib/nginx/tmp/client_body/0000000050" failed (13: Permission denied),

还看看这个:

nginx 500 error, permission denied for tmp folder