2013-06-23 4 views
0

Я дал «всем» как все разрешения в разрешениях вешалки AWS s3.Не удалось записать файл в amazon s3 с django

Ia m используя django. Я могу читать файлы, но я не могу их написать.

Я пытаюсь это

>>> print default_storage.connection 
S3Connection:s3.amazonaws.com 
>>> from django.core.files.base import ContentFile 
>>> from django.core.cache import cache 

>>> default_storage.exists('testkey') 
True 



>>> file = default_storage.open('storage_test', 'w') 
>>> file.write('storage contents') 
Traceback (most recent call last): 


S3ResponseError: S3ResponseError: 403 Forbidden 
<?xml version="1.0" encoding="UTF-8"?> 
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>FDD54 

Я добавил это в настройках

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 
AWS_ACCESS_KEY_ID='XXXXXXXXXXXXXXA' 
AWS_SECRET_ACCESS_KEY='XXXXXXX' 
AWS_STORAGE_BUCKET_NAME='testbucket' 

Я также запутался, как Джанго s3 знает, какой пользователь использовать от s3. я запутался. Ключ доступа для user_123, который я создал, но в разрешении я не в состоянии видеть, что пользователь в AWS s3 выпадающего списка

+0

Будет ли эта помощь? http://stackoverflow.com/questions/10854095/boto-exception-s3responseerror-s3responseerror-403-forbidden – karthikr

ответ

5

Я также запутался, как Джанго s3 знает, какой пользователь использовать от s3

Это определяется строго ключом доступа и секретным ключом, который вы разместили в своей конфигурации.

Вы подарили user_123 доступ к S3? В IAM консоли, вы должны дать user_123 доступ к ковшу, как это:

{ 
    "Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": "s3:*", 
     "Resource": ["arn:aws:s3:::testbucket/*", "arn:aws:s3:::testbucket"] 
    } 
    ] 
} 

Не забудьте удалить «разрешения каждого на ведро

+0

, но где 'user_123' написано в этой политике – user1958218

+0

Эта политика прикреплена к user_123. В консоли IAM выберите users-> user_123-> вкладку Permissions -> «Attack User Policy» и вставьте указанную выше политику. Он будет применяться к user_123 благодаря привязке к user_123 – prestomation

+0

, вы отличный doude, я нахожу его – user1958218