我想在s3存储桶中搜索文件名abc.zip,并且有将近60个存储桶,每个存储桶都有2到3个级别的子目录或文件夹。我尝试使用AWS CLI命令执行搜索,以下是其中的命令我尝试过,但是即使文件存储在存储桶中。文件的结果也没有显示。
agg
对于所有上述命令执行,我在命令行中看不到文件名,并且当我手动检查存储桶时,文件存在。 有什么办法可以找到该文件。
答案 0 :(得分:4)
嗯。
我从#1使用了您的命令,而没有使用“ --recursive”,因为这会抛出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
}
]
如果您决定升级CLI客户端:https://github.com/aws/aws-cli/tree/master
当前版本为awscli-1.15.77
,您可以通过aws --version
进行检查。
答案 1 :(得分:0)
我知道这很古老,但是我找到了一种无需将文本传递到grep的方法...
public function getUsers()
{
return $this
->join('school_users', function($join) {
$join->on('school_users.user_id', '=', $this->table.'.id')
->whereColumn('school_users.user_id', 'school_users.school_id');
})
->select
(
$this->table.'.*',
'school_users.school_id as school_id'
)
->orderBy($this->table.'.id','desc')
->get();
}
答案 2 :(得分:-1)
我以以下方式尝试
aws s3 ls s3://Bucket1/folder1/2019/ --recursive |grep filename.csv
这将输出文件所在的实际路径
2019-04-05 01:18:35 111111 folder1/2019/03/20/filename.csv
希望这会有所帮助!