2013-06-30 4 views
0

J'utilise django-storages pour télécharger des fichiers statiques vers AWS S3. J'ai suivi les tutoriels et réussi à télécharger et récupérer les fichiers statiques pour la page d'administration. J'ai ensuite créé un répertoire statique dans mon projet django, ajouté quelques fichiers bootstrap et exécuté collectstatic. Je peux voir que les fichiers bootstrap ont tous été stockés avec succès dans mon seau S3. Toutefois, lorsque j'essaie d'exécuter mon application (localement et sur Heroku), les fichiers d'amorçage échouent avec une erreur get 403 interdite.django-storages s3 403 erreur interdite

Les fichiers d'administration sont stockés dans un dossier d'administration dans le même compartiment S3 et sont récupérés sans problème. Qu'est-ce qui pourrait expliquer cet écart? Je suis nouveau à s3, alors peut-être que je fais quelque chose de mal là-bas.

J'ai confirmé que mes clés AWS fonctionnent.

Mon settings.py sont les suivantes:

AWS_STORAGE_BUCKET_NAME = 'punchline-app' 
AWS_PRELOAD_METADATA = True 
STATIC_ROOT = '' 
STATIC_URL = 'https://punchline-app.s3.amazonaws.com/static/' 
ADMIN_MEDIA_PREFIX = 'https://punchline-app.s3.amazonaws.com/static/admin/' 

STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static". 
# Always use forward slashes, even on Windows. 
# Don't forget to use absolute paths, not relative paths. 
    os.path.join(PROJECT_DIR,"static"), 
) 

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
) 
+0

Est-ce l'URL correcte (https: // punchline- app.s3.amazonaws.com/static/admin/css/base.css) pour l'un des fichiers statiques de l'administrateur? J'obtiens des permissions refusées si c'est le cas. Ce post pourrait également aider à jeter un peu de lumière impliquant des autorisations de compartiment S3: http://stackoverflow.com/questions/13167493/access-denied-error-with-amazon-s3 –

+0

Les autorisations semblent bien. J'ai remarqué qu'il n'y a aucun dossier statique dans mon seau cependant. J'ai résolu le problème en changeant mon URL STATIC_URL en conséquence (en supprimant le 'statique' du chemin). Bizarrement, l'URL ADMIN_MEDIA_PREFIX a toujours du statique dans le chemin et cela fonctionne. – Rob

Répondre

0

Avez-vous vos clés d'accès triés comme celui-ci dans votre fichier settings.py?

AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID') 
AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY') 
AWS_STORAGE_BUCKET_NAME = os.environ.get('AWS_STORAGE_BUCKET_NAME') 

Et avez-vous défini vos variables d'env dans heroku? par exemple.

heroku config:set AWS_ACCESS_KEY_ID='<put your key here>' 
0

C'est ce que AWS dit au sujet de votre question

  1. Accès refusé
  2. compte numéro

enter image description here

Questions connexes