Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ';S3和x27;对象没有属性';桶';_Python_Python 3.x_Boto3 - Fatal编程技术网

Python ';S3和x27;对象没有属性';桶';

Python ';S3和x27;对象没有属性';桶';,python,python-3.x,boto3,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 与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

与Boto3互动的方式不止一种

使用
resource()
和类似
S3.Bucket
的类的高级方法。 而底层的一个使用
boto3.client(…)
。你把这两者混在一起了

如果你仔细看一下,就会清楚区别。简言之

高级示例

s3 = boto3.resource('s3') 
the_bucket = s3.Bucket('my_bucket')
self.client = boto3.client(...)
self.client.create_bucket(...)
低级示例

s3 = boto3.resource('s3') 
the_bucket = s3.Bucket('my_bucket')
self.client = boto3.client(...)
self.client.create_bucket(...)

您的可能副本混淆了boto3.s3.client和boto3.s3.resource。s3.client.Bucket没有这样的类,只有s3.resource.Bucket是有效的。为什么要区分这两者?使用一个文件比另一个文件有好处吗?boto3的文档真的很混乱,同样的事情发生在我尝试删除一个文件时,我最终混合了这些方法。以下是可用于使用客户端模式的方法的完整列表: