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',
)
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 –
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