はじめに
awsにおける大半の作業はawsコマンドで操作ができる。画面上にはあるはずの「フォルダの作成」だけ、オフィシャルドキュメントにコマンドが見つからなかった。 https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/using-s3-commands.html
S3におけるフォルダという概念
実はS3においてフォルダという概念は存在しない。 https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/UsingMetadata.html
Amazon S3 のデータモデルはフラットな構造です。バケットを作成し、そのバケットにオブジェクトが格納されます。サブバケットやサブフォルダの階層はありません。ただし、Amazon S3 コンソールで使用されているようなキー名のプレフィックスや区切り記号を使用して論理的な階層を暗示できます。
そのため、1バケットに対し、その中にフォルダは存在せず、大量のファイルが入っているイメージということだ。
ではどうするか
ディレクトリがないけど、直接ぶちこむ
aws s3 cp sample.txt s3://test/sample-folder/
これで、testバケットのなかに、sample-folderを作成。 その中にsample.txtをコピーすることになる。 参考情報: Amazon S3における「フォルダ」という幻想をぶち壊し、その実体を明らかにする https://dev.classmethod.jp/cloud/aws/amazon-s3-folders/ ちなみに
複数環境が.awsディレクトリに登録されている場合は–profile role-a-profileで読み込むprofileを指定することが可能。
ディレクトリごとコピーしたい場合は
--recursive
オプション で再帰的にコピーすることが可能
参考情報
s3のディレクトリしかり、AWSについて体系的に学ぶことができるのでおすすめ。