Obwohl ich Datei-Uploads in der Entwicklung gut funktioniert, kann ich sie nicht in der Produktion mit AWS S3 arbeiten. Ich bin immer noch 403 Fehler:Django Medienspeicher mit Amazon 403 Fehler
S3ResponseError: 403 Forbidden
ich in meinem AWS IAM Benutzerzugriffsschlüssel-ID sehen, dass ich einen letzten Zugriff bekommen aufgezeichnet, wenn die django app zu verbinden versucht.
Allerdings, wenn ich die Anmeldeinformationen zu testen mit:
>>> import boto
>>> s3 = boto.connect_s3('access_key', 'secret_key')
>>> bucket = s3.get_bucket('mybucket')
dann bekomme ich auch einen 403 verbotenen Zugriffsfehler, aber aus irgendeinem Grund die letzte Zugriffsdatensatz wird nicht in der AWS IAM dahboard, die mich macht Glauben Sie, dass der Test aus irgendeinem Grund nicht funktioniert?
common.py Einstellungen:
MEDIA_ROOT = str(APPS_DIR('media'))
MEDIA_URL = '/media/'
Produktionseinstellungen:
AWS_ACCESS_KEY_ID = env('DJANGO_AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = env('DJANGO_AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = env('DJANGO_AWS_STORAGE_BUCKET_NAME')
AWS_AUTO_CREATE_BUCKET = True
from storages.backends.s3boto import S3BotoStorage
MediaRootS3BotoStorage = lambda: S3BotoStorage(location='media')
DEFAULT_FILE_STORAGE = 'config.settings.production.MediaRootS3BotoStorage'
MEDIA_URL = 'https://s3.amazonaws.com/%s/' % AWS_STORAGE_BUCKET_NAME
AWS-Umgebung vairables sind Setup in Heroku.
Upload über getan:
class Bill(models.Model):
service = models.ForeignKey(UserService
bill = models.FileField(upload_to='bills', validators=[validate_file_extension])
diesen Befehl einmal
Klingt nach einem Berechtigungsproblem. Überprüfen Sie Ihre IAM-Berechtigungen und die S3-Bucket-Richtlinie. –
Beachten Sie, dass Sie IAM-Berechtigungen überprüfen können, außer Benutzer-> Sicherheitsanmeldeinformationen. Der Zugriffsschlüssel und der geheime Schlüssel sind die, mit denen ich getestet habe. Die Bucket-Berechtigungen sehen gut aus List, Uplod/Delete, View-Berechtigungen und Bearbeitungsberechtigungen wurden dem Benutzer (mir) gewährt, der der Zugriffsschlüssel und der geheime Schlüssel ist, den ich benutzt habe. – Yunti