使用boto3删除AWS S3桶 - AttributeError的
问题描述:
我试图删除的S3存储使用boto3库使用boto3删除AWS S3桶 - AttributeError的
import boto3
s3 = boto3.client('s3')
bucket = s3.Bucket('my-bucket')
response = bucket.delete()
我收到以下错误:
"errorType": "AttributeError",
"errorMessage": "'S3' object has no attribute 'Bucket'"
我看不出有什么不对..谢谢
答
试试这个:
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('my-bucket')
bucket.delete()
答
错误消息中包含大写字母“S”。我怀疑由于您的代码以小写字母s显示's3',因此这里没有粘贴错字。
就个人而言,我只是做这种方式:
import boto3
s3 = boto3.client('s3')
bucket = 'my_bucket'
response = s3.delete_bucket(Bucket=bucket)
+0
您的错字声明是错误的,boto3或Python出于某种原因返回'S3'。 你可以在这里测试这个代码片段,并比较我得到的输出:https://pastebin.com/raw/XCm59Gvv –
答
这是因为客户端界面(boto3.client
)没有.Bucket()
,只有boto3.resource
做,所以这会工作:
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('my-bucket')
response = bucket.delete()
从docs引用:
Resources represent an object-oriented interface to Amazon Web Services (AWS). They provide a higher-level abstraction than the raw, low-level calls made by service clients.
一般来说,如果您使用的是boto3,资源可能大部分时间应该是您的首选界面。
谢谢,但错误仍然存在@UXDart – Rambo
您使用的是最新版本的boto3吗?或者您使用的是哪个版本? – UXDart
我正在Lambda上运行我的脚本,它有版本1.4.4 – Rambo