我有一个S3存储桶,在存储桶中我有一个文件夹,在文件夹中我有许多子文件夹,如下所述。
桶路径:s3:// path1 / path2
里面的path2文件夹会像
D1D04021200040609001
D1D04021200040612001
D3D04020000040603001
D3D04020000040606001
D6D05091200051512001
D6D05091200051518001
G1S05101200051217001
G1S05101200051218001
G4S05091200051012001
G4S05091200051013001
我有很多这样的文件夹。我只想检查特定文件是否存在或不使用模式。我如何在Linux中执行此操作
aws s3api list-objects --bucket path1/path2 --query "Contents[?contains(Key, `D1D0`)]"
出现类似...的错误。无效的存储桶名称存储桶名称应在正则表达式中
请帮助!
看来您的要求是计算包含给定字符串的所有对象的总大小。
这可以通过:
aws s3api list-objects --bucket my-bucket --query "sum(Contents[?contains(Key, 'E4Y0')].Size)"
相反,如果要查找以给定字符串开头的所有对象的总大小,请使用:
aws s3api list-objects --bucket my-bucket --prefix E4Y0 --query "sum(Contents[].Size)"
[请注意,Prefix
查看的是完整路径,因此它可能包含子目录。因此,首先用--query Contents[].Key
打印名称以确保您包含正确的对象。