僅使用AWS CLI,可以使用參數--query
針對存儲桶運行list-objects
。這不會是一個快速操作,因爲它在獲取文件列表之後在本地運行,而不是在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
}
]
使用--query
經過短短管道到grep的好處是,你會得到充分反應包括通常包含在list-objects
所有可用的元數據,而不必猴子周圍之前和grep的參數之後。
有關詳細信息,請參見Finding Files in S3的此帖子,其中包括一個類似示例,該示例顯示具有相同名稱的文件最終位於不同目錄中時具有元數據的好處。
不幸的是我認爲你的選擇是有限的。遞歸循環可能是你最好的。 S3不應該以這種方式使用 –
你希望以編程方式獲得它,還是命令行充足?在什麼情況下你在尋找這個文件(例如,它是一次性的請求,常規的工作,更大的應用程序的一部分,等等)? –