Boto ダウンロード

AWS

本記事は、以下公式サイトを参考としています。

 

基本的な使い方がまだ知らない人は先に以下をご参照ください。

Boto3 インストールと基本的な使い方

 

Downloading a File

デフォルトのプロファイルの場合

download.py

  • BUCKET_NAME に自分のバケット名を入れてください。
  • KEY にS3上のダウンロードしたいファイルを入れましょう。
  • 10行目の「my_local_image.jpg」はローカルに落としたい場所や名前を入れてください。
import boto3
import botocore

BUCKET_NAME = 'my-bucket'  # replace with your bucket name
KEY = 'my_image_in_s3.jpg'  # replace with your object key

s3 = boto3.resource('s3')

try:
    s3.Bucket(BUCKET_NAME).download_file(KEY, 'my_local_image.jpg')
except botocore.exceptions.ClientError as e:
    if e.response['Error']['Code'] == "404":
        print("The object does not exist.")
    else:
        raise

 

わかりにくかったので訂正してみました。(これがいい方法なのかは謎)

download_r2.py

  • abs_s3_path にS3上のダウンロードしたいファイルを入れましょう。
  • abs_local_location にローカルに落としたい場所や名前を入れてください。
  • BUCKET_NAME に自分のバケット名を入れてください。
  • KEY にS3上のダウンロードしたいファイルを入れましょう。
import boto3
import botocore

abs_s3_path = 'sample/sample.csv'
abs_local_location = '/home/ubuntu/sample.csv'


BUCKET_NAME = 'sample-bucket'  # replace with your bucket name
KEY = abs_s3_path  # replace with your object key

s3 = boto3.resource('s3')

try:
    s3.Bucket(BUCKET_NAME).download_file(KEY, abs_local_location)
except botocore.exceptions.ClientError as e:
    if e.response['Error']['Code'] == "404":
        print("The object does not exist.")
    else:
        raise

 

  • プロファイルを指定したい場合

download_r2_with_profile.py

import botocore
from boto3.session import Session

profile = 'sample-profile'
session = Session(profile_name=profile)

abs_s3_path = 'sample/sample.csv'
abs_local_location = '/home/ubuntu/sample.csv'


BUCKET_NAME = 'sample-bucket'  # replace with your bucket name
KEY = abs_s3_path  # replace with your object key

s3 = session.resource('s3')

try:
    s3.Bucket(BUCKET_NAME).download_file(KEY, abs_local_location)
except botocore.exceptions.ClientError as e:
    if e.response['Error']['Code'] == "404":
        print("The object does not exist.")
    else:
        raise

 

 

コメント