我已将'everyone'作为AWS s3存储区权限的所有权限。
我正在使用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'
我也很困惑如何让django s3知道从s3使用哪个用户。我很迷惑。访问密钥用于我创建的user_123
但是在权限中我无法在aws s3下拉列表中看到该用户
答案 0 :(得分:5)
我也很困惑如何让django s3知道从s3使用哪个用户
这严格取决于您在配置中放置的Accesskey和密钥。
您是否已授予user_123
访问S3的权限?在IAM控制台中,您需要授予user_123
访问权限,如下所示:
{
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": ["arn:aws:s3:::testbucket/*", "arn:aws:s3:::testbucket"]
}
]
}
不要忘记删除'每个人对桶的许可