【问题标题】:Boto3 get_bucket_location returns: Access Denied when using variableBoto3 get_bucket_location 返回:使用变量时拒绝访问
【发布时间】:2019-12-04 11:21:44
【问题描述】:

我有一个包含 S3 存储桶列表的文件。我想遍历它们以获取存储桶所在的区域。

但是,我收到了这个错误:

botocore.exceptions.ClientError:调用GetBucketLocation操作时发生错误(AccessDenied):访问被拒绝

这是我的代码:

import boto3
client = boto3.client('s3')

with open('test','r') as input_file:

    for var in input_file:

        x = var.rstrip('\n')

        response = client.get_bucket_location(Bucket=x)

        print(x)

如果我在 (Bucket='bucket_name') 中硬编码存储桶名称,它就可以正常工作,因此与权限无关(并且我确认我之前已授予所有必需的权限)

为什么我不能在这个简单的代码中使用变量?为什么我会被拒绝访问?

【问题讨论】:

    标签: for-loop variables amazon-s3 boto3


    【解决方案1】:

    根据 boto3 文档,当出现权限问题时会返回“拒绝访问”。然而现实生活告诉我,当引用的存储桶名称不存在时,这个问题也可能出现。

    在我的情况下,我的列表中的第一个存储桶的名称有错字,因此,对于 boto,该存储桶不存在并抛出错误消息。

    仅供参考。

    【讨论】:

      猜你喜欢
      • 2016-02-07
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-09
      相关资源
      最近更新 更多