2012-11-09 10 views
5

Mam dziwny problem i nie mam pojęcia, co go powoduje. Oto mój obecny config (używając Heroku):Udostępnianie plików statycznych i multimedialnych Django od S3

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 = '' 

Rzecz pliki statyczne działają bez zarzutu, linki wyglądać następująco: https://s3.amazonaws.com/project-staging/img/homepage_left.png.

Pierwszy problem (Admin pół złamane):

Administrator jest w połowie pracy. Pliki CSS serwowane są w porządku: https://project-staging.s3.amazonaws.com/admin/js/core.js?Signature=asdasdasd%3D&Expires=1352430664&AWSAccessKeyId=asdasdasA ale wszystkie obrazy są podzielone: ​​

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

nie wiem dlaczego Podpis i AWSAccesskey istnieją :(Jeśli usunąć je (ręcznie) prace URL. fine

Drugi problem (przesłanych za pośrednictwem mediów ImageField/FileField):

Używam {{MEDIA_URL}}{{object.flyer}}, to przekłada się /media/media/flyers/poster_1.png, jak mogę zwrócić ją do S3 powinno być tak: https://project-staging.s3.amazonaws.com/media/flyers/poster_1.png

Odpowiedz

0

Odpowiedź na drugie pytanie: trzeba ustawić MEDIA_URL = https://project-staging.s3.amazonaws.com/media/ jak robisz dla STATIC_URL

0

Na pierwsze pytanie, myślę, że trzeba zrobić:

AWS_QUERYSTRING_AUTH = False 
Powiązane problemy