0
雖然我的文件上傳工作正常,但我無法讓他們使用AWS S3進行生產。目前我得到的403錯誤:Django媒體存儲與亞馬遜403錯誤
S3ResponseError: 403 Forbidden
我可以看到在我的AWS IAM用戶訪問密鑰ID,我得到當Django應用程序試圖連接記錄最後的訪問。
但是當我測試的憑據:
>>> import boto
>>> s3 = boto.connect_s3('access_key', 'secret_key')
>>> bucket = s3.get_bucket('mybucket')
然後我也得到一個403禁止訪問錯誤,但是由於某些原因,最後的訪問記錄沒有出現在AWS IAM dahboard,這使我認爲測試不起作用的原因?
common.py設置:
MEDIA_ROOT = str(APPS_DIR('media'))
MEDIA_URL = '/media/'
生產設置:
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環境vairables在Heroku的設置。
通過上傳完成:
class Bill(models.Model):
service = models.ForeignKey(UserService
bill = models.FileField(upload_to='bills', validators=[validate_file_extension])
聽起來像一個權限問題。檢查您的IAM權限和S3存儲桶策略。 –
請注意,除了Users-> Security Credentials外,如何檢查IAM權限 - 訪問密鑰和密鑰inthere是我用來測試的。存儲區權限看起來不錯列表,Uplod/Delete,查看權限和編輯權限已授予用戶(我),這是我使用的訪問密鑰和密鑰。 – Yunti