我想在s3存储桶中搜索文件名abc.zip,有将近60个存储桶,每个存储桶都有2到3个级别的子目录或文件夹。我尝试使用AWS CLI命令执行搜索,以下是我尝试过的命令,但即使文件存在于存储桶中,也不会显示该文件的结果。
aws s3api list-objects --bucket bucketname --region ca-central-1 \
--recursive --query "Contents[?contains(Key, 'abc.zip')]"
aws s3 ls --summarize --human-readable --recursive bucketname \
--region ca-central-1 | egrep 'abc.zip'
Run Code Online (Sandbox Code Playgroud)
对于上述所有命令执行,我在命令行中看不到文件名,而当我手动检查存储桶时,文件存在。有什么办法可以找到该文件。
Dhe*_*raj 15
我尝试了以下方式
aws s3 ls s3://Bucket1/folder1/2019/ --recursive |grep filename.csv
Run Code Online (Sandbox Code Playgroud)
这输出文件存在的实际路径
2019-04-05 01:18:35 111111 folder1/2019/03/20/filename.csv
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
小智 9
我知道这很古老,但我找到了一种方法来做到这一点,而无需将文本通过管道传递给 grep ...
aws s3api list-objects-v2 --bucket myBucket --prefix 'myFolder' \
--query "Contents[*]|[?ends_with(Key,'jpg')].[Key]"
Run Code Online (Sandbox Code Playgroud)
嗯 我从#1使用了您的命令,但没有“-递归”,因为这会抛出Unknown options: --recursive。我正在搜索的文件位于存储桶的第二层,并且已找到。--region也没有使用。
我的猜测是您使用的是旧版本的AWS Client或指向错误的存储桶。我的工作命令:
aws s3api list-objects --bucket XXXXX --query "Contents[?contains(Key, 'animate.css')]"
[
{
"LastModified": "2015-06-14T23:29:03.000Z",
"ETag": "\"e5612f9c5bc799b8b129e9200574dfd2\"",
"StorageClass": "STANDARD",
"Key": "css/animate.css",
"Owner": {
"DisplayName": "XXXX",
"ID": "XXXX"
},
"Size": 78032
}
]
Run Code Online (Sandbox Code Playgroud)
如果您决定升级CLI客户端:https : //github.com/aws/aws-cli/tree/masterawscli-1.15.77您可以通过检查
当前版本aws --version。
| 归档时间: |
|
| 查看次数: |
3803 次 |
| 最近记录: |