[Python] boto3.resourceとboto 3.クライアントの違い


出典
Quickstart - Boto3 Docs 1.18.58 documentation boto3はPythonモジュールで、Pythonアプリケーション、ライブラリまたはスクリプトでAmazon S 3、Amazon EC 2、Amazon DynamoDBなどのAWSサービスを簡単に使用できます.
boto 3を使用する方法は、クライアント、リソース、セッションの3つです.その中で最もよく使われる2つのクライアントとresource方式の違いを理解してみましょう.
1. Client
  • 低層インタフェース
  • サービス記述によって生成される.
  • AWS APIと一対一をサポートします.
  • 例.パケットに存在するファイルの最終変更日の表示
    import boto3
    
    bucket_name = "mybucket"
    s3_client = boto3.client("s3")
    res = s3_client.list_objects(Bucket=bucket_name)
    
    for content in res["Contents"]:
    	obj_dict = s3_client.get_object(Bucket=bucket_name, Key=content["Key"])
    	print(content["key"], obj_dict["LastModified"])
    2. Resource
  • 高度、オブジェクト向けインタフェース
  • boto3.お客様を包んで実現しました.
  • リソース記述によって生成される.
  • 識別子(識別子)と属性(属性)を使用します.
  • リソースのオペレーティングセンター
  • 例.以上のように
    import boto3
    
    bucket_name = "mybucket"
    s3r = boto3.resource("s3")
    bucket = s3r.Bucket(bucket_name)
    
    for obj in bucket.objects.all():
    	print(obj.key, obj.last_modified)
    設計は資源に対する操作を中心にして、直観的で、使いやすい.boto3.resourceboto3.clientを包装する高標準インターフェースであるからである.ただし、パッケージboto3.clientの全機能はなく、boto3.clientまたはboto3.resource.meta.clientを用いて作業する必要がある.