Amazon S3からファイルを効率的にダウンロードする方法

awsアプリケーション開発

当記事では、Amazon S3から一括でファイルをダウンロードする方法を紹介します。

Z-A-K-I
Z-A-K-I

S3にあるオブジェクトを全てダウンロードしたい。

マネジメントコンソールだと1ファイルずつしかダウンロードできなくて困ってる。

と、思ってる方におすすめです。

この記事では、以下のことを紹介してます。

  • AWS CLIとは
  • AWS CLIの設定方法
  • S3のバケットからファイルを一括ダウンロードする方法

Amazon S3は、データのバックアップやアーカイブ、ウェブサイトのコンテンツ配信など、多岐にわたる用途で利用されています。しかし、多くのファイルを一度にダウンロードする必要がある場合、マネジメントコンソールだと1ファイルずつしかダウンロードできないため不便です。

本記事では、AWS CLIを使用してS3バケットから複数のファイルをダウンロードする方法と、AWS CLIの設定方法、さらにMFAを設定している場合のコマンド実行方法をご紹介します。

AWS CLIとは

AWS CLIは、Amazon Web Services(AWS)のサービスをコマンドラインから操作するためのツールです。AWS CLIを使用することで、GUIを介さずに迅速にAWSのリソース管理が可能になります。

AWS CLIを利用することで、S3のバケットからオブジェクトを一括ダウンロードできます。

AWS CLIの設定方法

AWS CLIを使用するためには前に、アクセスキー、シークレットキー、リージョン、出力形式を設定する必要があります。

設定にはaws configureコマンドを実行します。この設定により、AWSのリソースに安全にアクセスするための認証情報が設定されます。

$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json

上記のコマンド例の各項目に利用者毎の情報を入力します。AWSのIAMコンソールで作成したIAMユーザーの認証情報から取得できます。

MFAを設定している場合のAWS CLIコマンドの実行方法

認証でMFAを設定している場合、AWS CLIを使用してリソースとやり取りするには、一時セッションを作成する必要があります。

以下は、MFAデバイスを使用して一時セッションを作成するための手順です。

aws sts get-session-tokenコマンドを実行して、一時認証情報を取得します。

$ aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token

返ってきたJSONの中に含まれるAccessKeyIdSecretAccessKeySessionTokenを使用して、環境変数をセットします。

$ export AWS_ACCESS_KEY_ID=example-access-key-id
$ export AWS_SECRET_ACCESS_KEY=example-secret-access-key
$ export AWS_SESSION_TOKEN=example-session-token

この一時認証情報を使用することで、AWS CLIコマンドを実行してAWSのサービスにアクセスすることができます。

一時認証情報の有効期限はデフォルトで12時間ですが、--duration-secondsオプションを使用して、有効期間を指定することもできます。

S3からファイルをダウンロードするコマンド

S3バケットからファイルをダウンロードする基本的なコマンドは次のとおりです。

aws s3 cp s3://バケット名/ファイルパス ./ローカルディレクトリ --recursive

このコマンドは、指定したバケット内のすべてのファイルを再帰的にダウンロードします。--recursiveオプションを付けることで、サブディレクトリ内のファイルも含めてダウンロードすることができます。

特定のファイルタイプのみをダウンロードしたい場合は、--includeオプションを使用してファイルタイプを指定することができます。例えば、テキストファイルのみをダウンロードするには、次のようにします。

aws s3 cp s3://バケット名/ファイルパス ./ローカルディレクトリ --exclude "*" --include "*.txt" --recursive

まとめ

Amazon S3からファイルを効率的にダウンロードする方法のまとめ

本記事では、Amazon S3から一括でファイルをダウンロードする方法を紹介しました。

AWS CLIは、S3バケットからのファイルダウンロードを簡単かつ効率的に行うための強力なコマンドツールです。MFAを設定している場合でも、一時セッションを作成することで安全にAWSリソースを操作できます。

本記事が皆様の参考となりましたら幸いです。

この記事を書いた人
z_a_k_i

z_a_k_iと申します。

富山でITエンジニアとして働いています。
0歳児と3歳児を持つ30代メンズです。

このブログでは、以下の内容を紹介しています。

 ⚫︎アプリケーション開発
 ⚫︎富山県の情報発信

皆様に役立つ内容を紹介できるよう精進していきますので、
どうぞよろしくお願いします。

z_a_k_iをフォローする
awsアプリケーション開発

コメント