Python: Boto3を使用してAmazon S3を操作するときのチートシート

インストール

$ pip install boto3
$ pip install awscli

初期設定

$ aws configure
AWS Access Key ID: [AWS Access Key ID]
AWS Secret Access Key: [AWS Secret Access Key]
Default region name: ap-northeast-1
Default output format:

S3の操作

バケットの作成

import boto3

s3 = boto3.resource('s3')
bucket = s3.Bucket('[バケット名]')
bucket.create()

バケットの削除

import boto3

s3 = boto3.resource('s3')
bucket = s3.Bucket('[バケット名]')
bucket.delete()

すべてのバケットを取得

import boto3

s3 = boto3.resource('s3')
for bucket in s3.buckets.all():
    print(bucket)
#s3.Bucket(name='[バケット名1]')
#s3.Bucket(name='[バケット名2]')
#...

バケット内のすべてのオブジェクトを取得

import boto3

s3 = boto3.resource('s3')
bucket = s3.Bucket('[バケット名]')
for object in bucket.objects.all():
    print(object)
#s3.ObjectSummary(bucket_name='[バケット名]', key=u'[ファイル名1]')
#s3.ObjectSummary(bucket_name='[バケット名]', key=u'[フォルダ名1]/')
#s3.ObjectSummary(bucket_name='[バケット名]', key=u'[フォルダ名1]/[ファイル名2]')
#...

バケットのサイズを取得する

s3 = boto3.resource('s3')
bucket = s3.Bucket('[バケット名]')
bucket_size = 0
for object in bucket.objects.all():
    bucket_size += object.size

print('Bucket Size: {} bytes'.format(bucket_size))
#Bucket Size: [サイズ] bytes

ファイルをダウンロードする

import boto3

s3 = boto3.resource('s3')
s3.Object('[バケット名]', '[ファイル名(S3)]').download_file('[ファイル名(ローカル)]')

ファイルをアップロードする

import boto3

s3 = boto3.resource('s3')
s3.Object('[バケット名]', '[ファイル名(S3)]').upload_file('[ファイル名(ローカル)]')

署名付きURLを生成する

import boto3

s3 = boto3.client('s3')
presigned_url = s3.generate_presigned_url(
  ClientMethod = 'get_object',
  Params = {'Bucket' : '[バケット名]', 'Key' : '[ファイル名]'},
  ExpiresIn = [有効期間(秒)],
  HttpMethod = 'GET')
print(presigned_url)

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です