使用boto3删除AWS S3存储桶 - AttributeError

时间:2017-05-31 10:02:25

标签: amazon-s3 aws-lambda boto3

我正在尝试使用boto3库

删除S3存储桶
import boto3

s3 = boto3.client('s3')
bucket = s3.Bucket('my-bucket')
response = bucket.delete()

我收到以下错误:

"errorType": "AttributeError",
"errorMessage": "'S3' object has no attribute 'Bucket'"

我看不出有什么问题...谢谢

3 个答案:

答案 0 :(得分:0)

试试这个:

import boto3    
s3 = boto3.resource('s3')
bucket = s3.Bucket('my-bucket')
bucket.delete()

答案 1 :(得分:0)

这是因为客户端界面(boto3.client)没有.Bucket(),只有boto3.resource,所以这可行:

import boto3

s3 = boto3.resource('s3')
bucket = s3.Bucket('my-bucket')
response = bucket.delete()

引自docs

  

Resources表示面向对象的Amazon Web Services(AWS)界面。它们提供比服务客户端进行的原始低级调用更高级别的抽象。

一般来说,如果你使用boto3,资源应该是你大多数时候首选的界面。

答案 2 :(得分:-1)

错误消息包含带有大写字母S的'S3'。我怀疑这里没有粘贴拼写错误,因为你的代码显示's3',小写s。

就个人而言,我只是这样做:

import boto3

s3 = boto3.client('s3')
bucket = 'my_bucket'
response = s3.delete_bucket(Bucket=bucket)