Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提供Django';s来自S3的静态和媒体文件_Django_Amazon S3_Django Storage - Fatal编程技术网

提供Django';s来自S3的静态和媒体文件

提供Django';s来自S3的静态和媒体文件,django,amazon-s3,django-storage,Django,Amazon S3,Django Storage,我有一个奇怪的问题,我不知道是什么引起的。这是我当前的配置(使用Heroku): 问题是,静态文件工作正常,链接如下:https://s3.amazonaws.com/project-staging/img/homepage_left.png 第一个问题(管理员半坏): 管理员正在工作。CSS文件可以正常使用:https://project-staging.s3.amazonaws.com/admin/js/core.js?Signature=asdasdasd%3D&Expires=13524

我有一个奇怪的问题,我不知道是什么引起的。这是我当前的配置(使用Heroku):

问题是,静态文件工作正常,链接如下:
https://s3.amazonaws.com/project-staging/img/homepage_left.png

第一个问题(管理员半坏):

管理员正在工作。CSS文件可以正常使用:
https://project-staging.s3.amazonaws.com/admin/js/core.js?Signature=asdasdasd%3D&Expires=1352430664&AWSAccessKeyId=asdasdasA
但所有图像都已损坏:

https://project-staging.s3.amazonaws.com/admin?Signature=%2asdasdad%3D&Expires=1352430664&AWSAccessKeyId=asdasdaimg/icon_calendar.gif

我不知道为什么签名和AWSAccesskey会在那里:(。如果我手动删除它们,URL就可以正常工作了

第二个问题(通过ImageField/FileField上传的媒体):


我正在使用
{{MEDIA\uurl}{{{object.flyer}}
,它被翻译成
/media/media/flyers/poster_1.png
,我如何向s3指出它?它应该是这样的:
https://project-staging.s3.amazonaws.com/media/flyers/poster_1.png

回答第二个问题:您需要设置
媒体\u URL=https://project-staging.s3.amazonaws.com/media/
就像你为
STATIC\u URL

做第一个问题,我认为您需要做:

AWS_QUERYSTRING_AUTH = False
添加答案:

第一个问题: 确保您的bucket设置为public,并在设置中将AWS_QUERYSTRING_AUTH设置为False,这样您的文件将在没有签名部分的情况下提供

AWS_QUERYSTRING_AUTH = False
第二个问题: 确保在{{..url}末尾添加“url”

{{MEDIA_URL}}{{object.flyer.url}}
{{MEDIA_URL}}{{object.flyer.url}}