2016-11-22 5 views
0

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
+0

Klingt nach einem Berechtigungsproblem. Überprüfen Sie Ihre IAM-Berechtigungen und die S3-Bucket-Richtlinie. –

+0

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

Antwort

0

date ; sudo service ntp stop ; sudo ntpdate -s time.nist.gov ; sudo service ntp start ; date

laufen, wenn Signatur ungültig ist, dann wirft AWS ein 403. ich früher das gleiche Problem hatte.