2017-08-09 25 views
-1

我知道我想訪問的桶的路徑/bucket1/bucket2/etc/但我無法弄清楚如何通過boto3訪問它。在S3中使用Boto3訪問嵌套桶0

我可以枚舉所有從源頭開始的桶,但無法到達我想要的桶。

例如,我可以這樣做:

prod_bucket = s3.Bucket('prod') 

但我不能這樣做:

prod_bucket = s3.Bucket('prod/prod2/') 

TIA

+1

您使用了錯誤的術語。桶是入口點,也就是平面名稱空間。那麼只需從命令行輸入'aws s3 ls s3://'prod/prod2 /''' –

+0

確定它在CLI中正常工作,但與boto3/python不能正常工作。 –

回答

2

沒有嵌套桶。你有桶和物體。

s3 = boto3.client('s3') 
object = s3.get_object(Bucket='prod', Key='prod2/..') 

或者:

s3 = boto3.resource('s3') 
bucket = s3.Bucket('prod') 
object = bucket.Object('prod2/..') 

參見:get_object

+0

這對我不起作用,我得到一個「botocore.errorfactory.NoSuchKey」。即使我已經仔細檢查過名稱/鍵是否正確。 –

+0

明白了,謝謝! –