假设我有一个名为 Test 的存储桶,其中包含 Alpha/TestingOne,Alpha/TestingTwo 文件夹。我想使用 aws cli 检查我的存储桶中是否存在名为 Alpha/TestingThree 的文件夹。我确实尝试过 aws
s3api head-object --bucket Test --key Alpha/TestingThree
但似乎 head-object 是用于 files 而不是 folders 。那么有没有办法使用 aws cli api 检查 aws s3 中是否存在文件夹。
Rya*_*Kim 11
使用 aws cli,
aws s3 ls s3://Test/Alpha/TestingThree
Run Code Online (Sandbox Code Playgroud)
如果存在,则显示如下,否则不返回任何内容。
PRE TestingThree
Run Code Online (Sandbox Code Playgroud)
请注意,S3 是扁平结构(实际上没有像目录这样的层次结构)。 https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-folders.html
小智 6
似乎无法测试s3 存储桶中是否存在“文件夹”。这应该与一切都是带有键/值的“对象”这一事实有关。
作为一个选项,您可以使用 list-objects-v2 或 list-objects 来检查前缀(也称为“文件夹”)的“内容”:
$ aws s3api list-objects-v2 --bucket <bucket_name> --prefix <non_exist_prefix_name> --query 'Contents[]'
null
Run Code Online (Sandbox Code Playgroud)
对于此类查询,不存在的前缀(也称为“文件夹”)将始终返回“null”。然后您可以对“ null ”值进行比较:
$ test "$result" == "null" && echo 'yes' || echo 'no'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14423 次 |
| 最近记录: |