0

我已将“所有人”作为 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 下拉列表中看到该用户

4

1 回答 1

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"]
    }
  ]
}

不要忘记删除“所有人对存储桶的权限”

于 2013-06-24T05:58:29.960 回答