2016-03-20 4 views
3

Bir S3 grubuna erişimi verildi :: < Hesap>: kullanıcı/< kullanıcı adı>Boto3 kullanarak url'den S3 kovası nasıl kullanılır?</p> <p><strong>S3 temel yolu</strong>: s3: // klasor1/klasor2/*</p> bir IAM kullanıcı hesabıyla <p>:</p> <p>arn: aws: iam

Aşağıdakileri denedim ama şans yok.

import boto3 
client = boto3.client(
    's3', 
    aws_access_key_id='****', 
    aws_secret_access_key='****' 
) 
obj1 = client.get_object("folder1/folder2/*") #TypeError 
obj2 = boto3.resource("folder1/folder2/*") # DataNotFoundError 

Bu konuda herhangi bir yardım mutluluk duyacaktır. Teşekkürler!

+0

bir obje almaya çalışıyorsunuz ct ya da bir kova içeriğini listeleyebilir? –

cevap

1

s3 yolu şeklinde kova ve nesne oluşur:

s3://<Bucket>/<Key> 

Sen kova ve anahtar içine "s3_key" bölmek için aşağıdaki ifadeyi kullanabilirsiniz:

bucket, key = s3_key.split('/',2)[-1].split('/',1) 

Yani erişmek için nesnenin yol s3 den: // klasor1/aşağıdakileri yapacağını klasor2:

import boto3 
client = boto3.client('s3') 
client.get_object(Bucket='folder1', Key='folder2') 
+0

S3: // klasör1/klasör2/klasör3/* ve s3: // klasör1/klasör2/* 'ye erişemezsem ne olur? – piby190

+0

sonra folder2/folder3/* anahtarınız – Vor

+1

Aşağıdaki alternatifler çalışmıyor. '1) Anahtar = "klasor2/folder3" 2) Anahtar = "klasor2/folder3 /" 3) Anahtar = "klasor2/folder3/*"' Ancak aws-cli, aşağıdaki komutları üzerinde mükemmel çalışıyor: aws s3 ls s3: // klasör1/klasör2/klasör3/' – piby190

İlgili konular