ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

【s3】ファイルの扱い方を調べてみました

pythonを使ってs3のファイルを扱う方法がわからなかったのでここに調査内容をまとめました。

メモ

  • aws_access_key_id / aws_secret_access_key はマスク
  • sample.txt は事前にtouchコマンドで作成

サンプルコード

アップロード

import boto3

s3 = boto3.resource(
    's3', 
    aws_access_key_id='xxxxxxxxxxxxxxxxxxxxx', 
    aws_secret_access_key='xxxxxxxxxxxxxxxxxxxxx',
)
bucket_name = 'sample_bucket_name'
file_name = 'sample.txt'

bucket = s3.Bucket(bucket_name)
bucket.put_object(
     Key=file_name,
     Body=open(file_name, 'rb')
)

or

import boto3

s3 = boto3.resource(
    's3', 
    aws_access_key_id='xxxxxxxxxxxxxxxxxxxxx', 
    aws_secret_access_key='xxxxxxxxxxxxxxxxxxxxx',
)
bucket_name = 'sample_bucket_name'
file_name = 'sample.txt'

bucket = s3.Bucket(bucket_name)
bucket.upload_file(file_name, f"sample_path/{file_name}")

ファイル確認

import boto3

s3 = boto3.resource(
    's3', 
    aws_access_key_id='xxxxxxxxxxxxxxxxxxxxx', 
    aws_secret_access_key='xxxxxxxxxxxxxxxxxxxxx',
)
bucket_name = 'sample_bucket_name'
bucket = s3.Bucket(bucket_name)

objs = bucket.objects.all()
for i,obj in enumerate(iter(objs)):
    print(f'{i}: {obj.key}')

ファイルダウンロード

import boto3

s3 = boto3.resource(
    's3', 
    aws_access_key_id='xxxxxxxxxxxxxxxxxxxxx', 
    aws_secret_access_key='xxxxxxxxxxxxxxxxxxxxx',
)
bucket_name = 'sample_bucket_name'
bucket = s3.Bucket(bucket)

file_name = 'sample.txt'
bucket.download_file(file_name, file_name)

ファイル削除

import boto3

s3 = boto3.resource(
    's3', 
    aws_access_key_id='xxxxxxxxxxxxxxxxxxxxx', 
    aws_secret_access_key='xxxxxxxxxxxxxxxxxxxxx',
)

bucket_name = 'sample_bucket_name'
file_name = 'sample.txt'

s3.Object(bucket_name, file_name).delete()