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.