Fre*_*ers 5 amazon-s3 amazon-web-services
我的Amazon S3存储桶具有如下所示的文件夹结构。
如果我只知道文件名file3.doc和存储区名称bucket-name,那么如何在bucket-name中搜索file3.doc。如果我知道它在文件夹00002中,我可以简单地转到该文件夹并开始输入文件名,但是我无法知道我要搜索的文件位于哪个文件夹中。
hfr*_*nco 15
您可以使用 AWS CLI 轻松完成此操作。
aws s3 ls s3://BUCKET-NAME/ --recursive | grep FILE-NAME.TXT
Run Code Online (Sandbox Code Playgroud)
仅使用AWS CLI,您可以list-objects对带有--query参数的存储桶运行a 。这不是一个快速的操作,因为它在获取文件列表后在本地运行,而不是在s3的api中运行。
$ aws s3api list-objects --bucket bucket-name --query "Contents[?contains(Key, 'file3')]"
[
{
"LastModified": "2017-05-31T20:36:28.000Z",
"ETag": "\"b861daa5cc3775f38519f5de6566cbe7\"",
"StorageClass": "STANDARD",
"Key": "00002/file3.doc",
"Owner": {
"DisplayName": "owner",
"ID": "123"
},
"Size": 27032
}
]
Run Code Online (Sandbox Code Playgroud)
使用--query仅管道传递给grep 的好处是,您将获得完整的响应,包括通常包含在中的所有可用元数据list-objects,而无需花很多时间在grep的参数前后。
请参阅有关在S3中查找文件的更多信息,包括一个类似的示例,该示例显示了当同名文件最终位于不同目录中时使用元数据的好处。
如果您根本不知道它在哪里,您可能需要使用像s3cmd这样的命令行工具:
s3cmd --recursive ls s3://mybucket | grep "file3"
Run Code Online (Sandbox Code Playgroud)
但可以进行一些有限的搜索:
| 归档时间: |
|
| 查看次数: |
9941 次 |
| 最近记录: |