ClientError:调用 ListObjects 操作时发生错误(AccessDenied):访问被拒绝

6 python amazon-s3 parquet jupyter-notebook

我正在 jupyter 笔记本中使用 python。我正在尝试从 aws s3 存储桶访问多个 parquet 文件并将它们全部转换为一个 json 文件。我知道我可以访问数据,但我得到:

ClientError: An error occurred (AccessDenied) when calling the ListObjects operation: Access Denied
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

import boto3

s3_resource = boto3.resource('s3')

s3_client = boto3.client('s3')
bucket = s3_resource.Bucket(name='my-bucket')

all_objects = s3_client.list_objects(Bucket = 'my-bucket', Prefix = 'Files.parquet')
Run Code Online (Sandbox Code Playgroud)

我不确定访问被拒绝是从哪里来的。太感谢了!

jel*_*csc 10

您可以点击此链接,并将以下策略附加到用户/角色。

{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:ListBucket"
         ],
         "Resource":"arn:aws:s3:::my-bucket"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

  • 我相信我确实有这种访问权限,因为我之前调用了“for obj in bucket.objects.all():”,还有其他可能吗? (2认同)