Nouveau à Heroku & Amazon S3, alors portez-moi. J'ai téléchargé mon application Django sur Heroku et j'ai eu un problème avec les téléchargements de médias utilisateur. Le modèle est ci-dessous:Télécharger des médias de Heroku à Amazon S3
#models.py
class Movie(models.Model):
title = models.CharField(max_length = 500)
poster = models.ImageField(upload_to = 'storages.backends.s3boto')
pub_date = models.DateTimeField(auto_now_add = True)
author = models.ForeignKey(User)
L'attribut poster est celui dans lequel l'image est téléchargée. Je l'ai eu fonctionnait bien localement, et maintenant sur Heroku il y a une erreur. J'ai donc ajouté 'storages.backends.s3boto', comme l'ont dit de nombreux autres articles. (Je ne sais pas si c'est vrai).
Mon fichier Settings.py ressemble à ce moment, une sorte de gâchis:
#settings.py
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
PROJECT_DIR = os.path.join(PROJECT_ROOT, '../qanda')
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = '****************'
AWS_SECRET_ACCESS_KEY = '************'
AWS_STORAGE_BUCKET_NAME = 'mrt-assets'
AWS_PRELOAD_METADATA = True
MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'qanda/media/movie_posters/)
MEDIA_URL = '/media'
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles')
STATIC_URL = 'https://mrt-assets.s3.amazonaws.com/static/'
STATICFILES_DIRS = (os.path.join(PROJECT_DIR, 'static'),)
Mon seau est appelé mrt-actifs, et il y a 2 dossiers là statiques (css, js, images et Je ne suis pas trop inquiet pour les fichiers statiques pour l'instant, car j'ai codé en dur les fichiers CSS/JS dans mes fichiers HTML *, mais comment puis-je obtenir mes médias téléchargés par l'utilisateur (images de toute nature) dans mrt-assets/media?
* bien que si quelqu'un voulait aider avec des fichiers STATIC aussi, ce serait génial, mais les médias mis en ligne par l'utilisateur sont plus urgents
EDIT (par commentaire de Yuji):
Avoir essayé un certain nombre d'options, et aucune d'elles ne fonctionnait. Je suis retourné et supprimé beaucoup de changements, et c'est maintenant mes paramètres
#settings.py
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
MEDIA_ROOT = 'http://s3.amazonaws.com/mrt-assets/media/'
MEDIA_URL = '/media/'
STATIC_ROOT = 'http://s3.amazonaws.com/mrt-assets/static/'
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'
TEMPLATE_DIRS = (os.path.join(PROJECT_ROOT, "templates"),)
#models.py
#same as before, but now have changed the poster directory
poster = models.ImageField().
Pas vraiment sûr de ce qu'il faut faire, besoin de se connecter mon application Heroku à S3 si le téléchargement de médias utilisateur y sont enregistrés.
ont maintenant changé mon seau S3 à ce
Chris, ce qui est l'erreur? J'ai eu des problèmes avec un S3Boto particulier et a dû revenir à une version plus ancienne pour Heroku –
Yuji, éditera la question à remplir sur le statut actuel. Merci d'avance! –
essayé en utilisant [lien] (https://github.com/jamstooks/django-s3-folder-storage) Django s3 dossier de stockage. suivi les instructions dans git, ajouté à INSTALLED_APPS tuple, ajouté à requirements.txt, mais a obtenu le stockage de dossier s3 erreur. –