boto3 클라이언트는 언제 사용하고 boto3 리소스는 언제 사용합니까?


답변:


86

boto3.resource고수준 서비스 클래스 랩 어라운드 boto3.client입니다.

원래 리소스 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는 하위 수준이므로 "entry-class 개체"가 없으므로 수행하는 모든 작업에 대해 연결되는 정확한 리소스를 명시 적으로 지정해야합니다.

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


2
감사합니다. 문서 자체가 약간 모호하지만 클라이언트가 사용자가 만들 수있는 특정 API 호출에 매핑된다는 점이 핵심이라고 생각합니다.
aquil.abdullah

1
클라이언트에 자격 증명을 매개 변수로 전달하여 클라이언트를 초기화합니다. import boto3 client = boto3.client ( 's3', aws_access_key_id = ACCESS_KEY, aws_secret_access_key = SECRET_KEY). 리소스에 대해 비슷한 작업을 할 수 있습니까? 문서에서 이것을 찾을 수 없습니다.
Naveen

4
이 예제는 차이를 보여주는 어떤 것도 보여주지 않았습니다.
Nabin

3
포괄적 인 예제가 필요한 사람은 여기를 참조하십시오. stackoverflow.com/questions/42809096/…
mootmoot

1
누구든지 "리소스"인터페이스에 대한 문서에 대한 좋은 제안이 있습니까? BOTO3 문서는 주로 저수준 "클라이언트"인터페이스에 중점을 둡니다.
gye
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.