'S3'对象没有属性'Bucket'

Mad*_*ing 4 python python-3.x boto3

我收到这个错误'S3'对象没有任何属性'Bucket'的想法?下面是我的代码

self.client = boto3.client(
        's3',
        aws_access_key_id= access_key,
        aws_secret_access_key= secret
    )
the_bucket = self.client.Bucket('my_bucket') # but I'm receiving an error here
Run Code Online (Sandbox Code Playgroud)

Grz*_*zki 17

与Boto3交互的方式不止一种.

高级一个使用resource()和类似的S3.Bucket.而低级别的使用boto3.client(...).你有点混合这两个.

如果你看这里它会澄清差异.简而言之...

高级示例

s3 = boto3.resource('s3') 
the_bucket = s3.Bucket('my_bucket')
Run Code Online (Sandbox Code Playgroud)

低级示例

self.client = boto3.client(...)
self.client.create_bucket(...)
Run Code Online (Sandbox Code Playgroud)

  • 为什么要区分两者呢?使用其中一种比另一种有什么好处吗? (7认同)
  • boto3 的文档确实令人困惑,我尝试删除文件时也发生了同样的事情,我最终混合了这些方法。以下是可用于使用客户端模式的方法的完整列表:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html?highlight=delete_object#client (4认同)