我一直在为这个命令使用 AWK,但它太慢了。
必须有一种更快的方法从 aws s3 ls 命令
s5cmd ls s3://bucket-name/* | awk -v AWS_BUCKET="bucket-name" '{cmd="aws s3api put-object-acl --access-control-policy file:///access_policy.json --bucket " AWS_BUCKET " --key "$5; system(cmd); print $5}'
这基本上列出了所有对象,然后将 ACL 应用于它们。
有什么想法吗?
最佳答案
我的答案是两个答案的组合
s5cmd ls s3://bucket-name/* |
awk -v AWS_BUCKET="bucket-name" '{
printf "aws s3api put-object-acl --access-control-policy file:///access_policy.json --bucket %s --key %s\n", AWS_BUCKET, $5
}' |
parallel -j 32
这大大加快了这个命令,谢谢 Glenn Jackman 和 Mark Setchell
关于bash - 寻找 AWK 替代方案来加速此命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58754007/