ファイルのアップロードと取得

Python で始める AWS Boto 入門

Maksim Pecherskiy

Data engineer

バケットとオブジェクト

オブジェクト付きバケット

Python で始める AWS Boto 入門

バケット

S3 のバケット

  • バケットには名前があります
  • 名前は文字列
  • S3 全体で一意の名前
  • 多数のオブジェクトを保持

オブジェクト

S3 のオブジェクト

  • オブジェクトにはキーがあります
  • 名前はバケット直下からのフルパス
  • バケット内で一意のキー
  • 1 つの親バケットにのみ所属
Python で始める AWS Boto 入門

クライアントの作成

s3 = boto3.client(
  's3', 
  region_name='us-east-1', 
  aws_access_key_id=AWS_KEY_ID, 
  aws_secret_access_key=AWS_SECRET
)

クライアントと S3 の通信

Python で始める AWS Boto 入門

ファイルのアップロード

s3.upload_file(
  Filename='gid_requests_2019_01_01.csv', 
  Bucket='gid-requests', 
  Key='gid_requests_2019_01_01.csv')

バケットへのオブジェクトのアップロード

Python で始める AWS Boto 入門

ファイルのアップロード

S3 内のファイル

Python で始める AWS Boto 入門

さらにオブジェクトをアップロード

複数オブジェクトのアップロード

Python で始める AWS Boto 入門

バケット内のオブジェクト一覧

response = s3.list_objects(
  Bucket='gid-requests', 
  MaxKeys=2,
  Prefix='gid_requests_2019_')

print(response)

ListObjects のレスポンス

Python で始める AWS Boto 入門

バケット内のオブジェクト一覧

バケット内のオブジェクト一覧

Python で始める AWS Boto 入門

バケット内のオブジェクト一覧

バケット内のオブジェクト一覧

Python で始める AWS Boto 入門

バケット内のオブジェクト一覧

バケット内のオブジェクト一覧

Python で始める AWS Boto 入門

オブジェクトのメタデータ取得

response = s3.head_object(
  Bucket='gid-requests', 
  Key='gid_requests_2018_12_30.csv')

print(response)

HeadObject メソッド

Python で始める AWS Boto 入門

オブジェクトのメタデータ取得

オブジェクトのメタデータのレスポンス

Python で始める AWS Boto 入門

ファイルのダウンロード

s3.download_file(
  Filename='gid_requests_downed.csv',
  Bucket='gid-requests', 
  Key='gid_requests_2018_12_30.csv')

ファイルのダウンロード

Python で始める AWS Boto 入門

オブジェクトの削除

s3.delete_object(
  Bucket='gid-requests', 
  Key='gid_requests_2018_12_30.csv')

オブジェクトの削除

Python で始める AWS Boto 入門

まとめ

  • バケットはフォルダーのようなもの
  • オブジェクトはファイルのようなもの
  • boto3.client()
  • s3.upload_file()
  • s3.list_objects()
  • s3.head_object()
  • s3.download_file()
  • s3.delete_object()

バケット

Python で始める AWS Boto 入門

オブジェクトを作成しましょう!

Python で始める AWS Boto 入門

Preparing Video For Download...