管理人Kのひとりごと

デジモノレビューやプログラミングや写真など

S3に存在するフォルダ名を指定してフォルダを作るとどうなるか

S3はKVS形式であって、本当は「フォルダ」ではないのですが、「hogebucket/path1/path2/file1.txt」の「path1/path2」は今回は便宜上「フォルダ」ということでひとつ。
すでに存在するフォルダ名を指定してフォルダを作成するとどうなるかが気になったので試してみました。

フォルダ作成前の状況

C:\Users\hoge>aws s3 ls hogefugabucket(仮名)/hoge/a/b/
2020-11-11 21:59:26          3 a.txt

ここに、「hoge/a/b/」(存在する)と、「hoge/a/c」(存在しない)を作成する

存在するフォルダ名と、存在しないフォルダ名を指定してフォルダを作成

# 存在するフォルダ名を指定 → エラーなし
C:\Users\hoge>aws s3api put-object --bucket hogefugabucket(仮名) --key "hoge/a/b/"
{
    "ETag": "\"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\""
}

# 存在しないフォルダ名を指定
C:\Users\hoge>aws s3api put-object --bucket hogefugabucket(仮名) --key "hoge/a/c/"
{
    "ETag": "\"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\""
}

作成結果

C:\Users\hoge>aws s3 ls hogefugabucket(仮名)/hoge/a/b/
2020-12-09 00:02:48          0
2020-11-11 21:59:26          3 a.txt
→「0」は気になるが、「a.txt」は残っている

C:\Users\hoge>aws s3 ls hogefugabucket(仮名)/hoge/a/c/
2020-12-09 00:02:50          0
→どうやらフォルダは作成されている

S3ブラウザでも見てみる
f:id:ksk1130:20201209001145p:plain
f:id:ksk1130:20201209001140p:plain
「0」はS3ブラウザでは見えなかった

結論

存在するフォルダ名を指定しても、フォルダ配下のファイルは消えない。
また、存在するフォルダ名を指定してもエラーは発生しない。

参考にしました