AWSの部屋

AWS学習者向けのブログです

Boto3 で S3 に格納したファイルにアクセスしてみる

概要

筆者はAWS認定ソリューションアーキテクト-プロフェッショナル合格に向けてAWSの様々なサービスを勉強中。本日は Boto3 と S3 を触ってみる。

Boto3とは

AWS SDK for Python (Boto3) を使用すると、AWS の使用を迅速に開始できます。Boto3 を使用することで、Python のアプリケーション、ライブラリ、スクリプトAWS の各種サービス(Amazon S3Amazon EC2Amazon DynamoDB など)と容易に統合できます。(出典:AWS SDK for Python (Boto3)

今回の目標

Boto3 で S3 のバケットバケット内にある全てのファイル名を取得する

構成

実行環境

macOS 11.3.1
Python 3.9.6
Boto3 1.20.53

手順

  1. Boto3のインストール
  2. AWSアクセスキーの設定
  3. S3にバケットを作成
  4. バケットにファイルを格納
  5. 作成したバケットにアクセス
  6. バケット内のファイルにアクセス

1.Boto3のインストール

pip でインストールします。

pip install boto3

2.AWSアクセスキーの設定

AWS の操作には IAM のアクセスキーが必要なので、あらかじめマネージメントコンソールから作成する必要があります。作成方法に関しては以下を参照してください。

aws.amazon.com

また、以下のどちらかの方法でアクセスキーを設定します。私は2で設定しました。

  1. アクセスキーの情報を ~/.aws/credentials に設定する。
  2. AWS CLI をインストールし aws configure を行って設定する。詳細は以下を参照してください。

docs.aws.amazon.com

3.S3にバケットを作成

「20220211-test-bucket」というバケットを作成しました。

4.バケットにファイルを格納

作成したバケットに適当なファイルを格納します。

5.作成したバケットにアクセス

import boto3
s3 = boto3.resource('s3')
my_bucket = s3.Bucket('20220211-test-bucket')
print(my_bucket.name)

バケットへのアクセスに成功しました。

6.バケット内のファイルにアクセス

import boto3
s3 = boto3.resource('s3')
my_bucket = s3.Bucket('20220211-test-bucket')

for object in my_bucket.objects.all():
    print(object.key)

バケット内のファイルへのアクセスに成功しました。

さいごに

まだ基本的なことだけですが、目標を達成することができました。そのほかのサービスについても徐々に学んでいこうと思います。