2012-11-09 115 views
5

我有一個奇怪的問題,我不知道是什麼原因導致它。這是我目前的配置(使用Heroku):從S3服務Django的靜態和媒體文件

MEDIA_URL = '/media/' 
STATIC_URL = '/static/' 

STATICFILES_DIRS = (
os.path.join(PROJECT_DIR, '../static'), 
) 

#Determine if local or deployed. 
if 'DATABASE_URL' in os.environ: 
    STATICFILES_STORAGE  = 'storages.backends.s3boto.S3BotoStorage' 
    AWS_ACCESS_KEY_ID  = 'A...A' 
    AWS_SECRET_ACCESS_KEY = '...R' 
    DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 

    # PRODUCTION OR STAGING 
    if 'PROD' in os.environ: 
     AWS_STORAGE_BUCKET_NAME = 's3.project.com' 
     STATIC_URL = "https://s3.amazonaws.com/project/" 
    else: 
     AWS_STORAGE_BUCKET_NAME = 'project-staging' 
     STATIC_URL = "https://s3.amazonaws.com/project-staging/" 
else: 
    STATIC_ROOT = '' 

的事情是,靜態文件工作正常,鏈接是這樣的: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_URL}}{{object.flyer}},將其轉換爲/media/media/flyers/poster_1.png,我怎麼點出來到S3應該是這樣:https://project-staging.s3.amazonaws.com/media/flyers/poster_1.png

回答

0

回答你的第二個問題:你需要設置MEDIA_URL = https://project-staging.s3.amazonaws.com/media/就像你做了STATIC_URL

0

關於第一個問題,我認爲你需要做的:

AWS_QUERYSTRING_AUTH = False