AWS S3でフォルダを作成する方法

はじめに

AWSにおける作業の大半はawsコマンドで操作できます。

しかし、画面上にあるはずの「フォルダの作成」については、オフィシャルドキュメントにコマンドが見つかりませんでした。 https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/using-s3-commands.html

S3におけるフォルダという概念

実はS3においてフォルダという概念は存在しませんが、論理的な階層を暗示するためにキー名のプレフィックスや区切り記号を使用することができます。Amazon S3のデータモデルはフラットな構造を持ち、バケット内にオブジェクトが格納されます。バケット内にはサブバケットやサブフォルダの階層は存在しません。

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/UsingMetadata.html

Amazon S3 のデータモデルはフラットな構造です。バケットを作成し、そのバケットにオブジェクトが格納されます。サブバケットやサブフォルダの階層はありません。ただし、Amazon S3 コンソールで使用されているようなキー名のプレフィックスや区切り記号を使用して論理的な階層を暗示できます。

S3におけるデータモデルはフラットな構造を持ちます。バケットを作成し、そのバケットにオブジェクトが格納されます。サブバケットやサブフォルダの階層は存在せず、1つのバケットに多数のファイルが格納される形式となります。

S3におけるフォルダの作成方法

awsコマンドを使用して、S3上にフォルダを作成する方法を説明します。まずは以下のコマンドを使用して、フォルダを作成するためのキー名を指定します。

aws s3 cp sample.txt s3://test/sample-folder/

このコマンドでは、testバケット内にsample-folderという名前のフォルダを作成し、その中にsample.txtをコピーすることができます。複数の環境が.awsディレクトリに登録されている場合は、–profileオプションを使用して読み込むプロファイルを指定することができます。

参考情報: Amazon S3における「フォルダ」という幻想をぶち壊し、その実体を明らかにする https://dev.classmethod.jp/cloud/aws/amazon-s3-folders/

また、フォルダ内の全てのファイルを再帰的にコピーする場合は、–recursiveオプションを使用します。

以上が AWS S3でフォルダを作成する方法になります。