2016-09-01 3 views

답변

33

boto3.resources는 boto3.client를 둘러싼 고급 서비스 클래스입니다.

원래의 resource-id를 지정하지 않고 나중에 다른 리소스를 사용할 수있는 곳에 연결된 리소스를 연결하는 것을 의미합니다.

import boto3 
s3 = boto3.resource("s3") 
bucket = s3.Bucket('mybucket') 

# now bucket is "attached" the S3 bucket name "mybucket" 
print(bucket) 
# s3.Bucket(name='mybucket') 

print(dir(bucket)) 
#show you all class method action you may perform 

OTH, boto3.client 당신은 그래서 당신은 명시 적으로 수행 모든 조치에 연결하는 정확한 자원을 지정해야하는 "엔트리 클래스의 객체를"이없는, 낮은 수준이다.

개인적인 필요에 따라 다릅니다. 그러나 boto3.resources는 모든 boto3.client 기능을 래핑하지 않으므로 때때로 boto3.client를 호출하거나 boto3.resource.meta.client()를 사용하여 작업을 완료해야합니다.

+1

감사합니다.이 도움말은 약간 도움이되지만 문서 자체가 다소 모호하지만 고객이 할 수있는 특정 API 호출에 클라이언트가 매핑된다는 것이 중요하다고 생각합니다. . –

+0

클라이언트에 매개 변수로 자격 증명을 전달하여 클라이언트를 초기화합니다. 가져 오기 boto3 클라이언트 = boto3.client ( 's3', aws_access_key_id = ACCESS_KEY, aws_secret_access_key = SECRET_KEY ). 자원과 비슷한 것을 할 수 있습니까? 이 문서에서 찾을 수 없습니다. – Naveen

+0

@Naveen 하드 코딩 된 API 키를 전달하는 것은 좋지 않습니다. 주장하는 경우 boto3.session을 사용하고 세션에서 자원을 인스턴스화 할 수 있습니다. 주위에 많은 예제가 있습니다. – mootmoot

관련 문제