boto3を使用してS3にファイルを直接書き込む方法はありますか? 質問する

boto3を使用してS3にファイルを直接書き込む方法はありますか? 質問する

非常に大きなファイル (合計で数 TB) を処理する Python スクリプトを作成し、EC2 インスタンスで実行します。その後、処理したファイルを S3 バケットに保存します。現在、スクリプトはデータを最初にディスクに保存し、次に S3 にアップロードします。残念ながら、インスタンスが最初にディスクに書き込み、次にアップロードするまでの待機時間が増えるため、コストがかなり高くなります。

boto3 を使用してファイルを S3 バケットに直接書き込む方法はありますか?

編集: 質問を明確にするために、メモリ内にオブジェクトがあり、そのオブジェクトを最初にディスクに保存せずに S3 に直接書き込むかどうかを尋ねています。

ベストアンサー1

使用できますオブジェクトを置くこのためには、ファイル オブジェクトを body として渡すだけです。

例えば:

import boto3

client = boto3.client('s3')
response = client.put_object( 
    Bucket='your-s3-bucket-name',
    Body='bytes or seekable file-like object',
    Key='Object key for which the PUT operation was initiated'
)

おすすめ記事