【发布时间】:2018-02-22 07:58:45
【问题描述】:
我正在尝试从 AWS S3 中删除当前标记以恢复以前的版本。我有很多文件要删除。但是使用以下命令时,会触发yes或no提示。有什么办法可以避免这个提示?
aws s3api list-object-versions --bucket my_bucket --output json --query 'DeleteMarkers[].[Key, VersionId]' --region us-east-1 | jq -r '.[] | "--key '\''" + .[0] + "'\'' --version-id " + .[1]' | xargs -p -L1 aws s3api 删除对象 --bucket my_bucket --region us-east-1
以下是此脚本的示例输出。
aws s3api delete-object --bucket my_bucket --region us-east-1 --key 58a7ec1f77dd6e3ff3024a65/1487498355//39.jpeg --version-id _VY88LfKX3tXy2JABbC6rhDzKl3xhkg0 ?...
这里我们需要给出“y”作为答案。然后将触发下一个提示。问题是我有 800,000 个文件要做同样的操作。
现在我正在使用以下命令。
echo '#!/bin/bash' > undeleteScript.sh && aws --output text s3api 列表对象版本 --bucket my_bucket | grep -E "^DELETEMARKERS" | awk '{FS = "[\t]+";打印“aws s3api 删除对象--bucket my_bucket --key \42"$3"\42 --version-id "$5";"}' >> undeleteScript.sh && . undeleteScript.sh; rm -f undeleteScript.sh;
但是,这似乎很慢。还有其他命令可以让这变得简单快捷吗?
【问题讨论】:
-
能否请您在代码标签中发布示例 Input_file 并在代码标签中发布预期输出,因为它根本不清楚。
-
我添加了命令的示例输出。请检查。
标签: amazon-web-services amazon-s3