2017-05-31 152 views
1

我試圖刪除的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'" 

我看不出有什麼不對..謝謝

回答

0

試試這個:

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

謝謝,但錯誤仍然存​​在@UXDart – Rambo

+0

您使用的是最新版本的boto3嗎?或者您使用的是哪個版本? – UXDart

+0

我正在Lambda上運行我的腳本,它有版本1.4.4 – Rambo

-1

錯誤消息中包含大寫字母「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 –

0

這是因爲客戶端界面(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,資源可能大部分時間應該是您的首選界面。