我一直在编写一个网络应用程序,使用 s3 进行存储,使用 Glacier 进行备份。所以我设置了生命周期策略来存档它。现在我想编写一个列出存档文件的网络应用程序,用户应该能够从中启动恢复,然后在恢复完成后收到一封电子邮件。
现在我遇到的麻烦是我找不到可以发出来启动恢复的 php sdk 命令。然后,如果它在恢复完成时通知 SNS,那就太好了,SNS 会将 JSON 推送到 SQS,我会轮询 SQS,最后在轮询检测到完全恢复时向用户发送电子邮件。
任何帮助或建议都会很好。
谢谢。
您还可以使用AWS CLI 工具 http://aws.amazon.com/cli/像这样(这里我假设你想恢复一个目录中的所有文件):
aws s3 ls s3://myBucket/myDir/ | awk '{if ($4) print $4}' > myFiles.txt
for x in `cat myFiles.txt`
do
echo "restoring $x"
aws s3api restore-object \
--bucket myBucket \
--key "myDir/$x" \
--restore-request '{"Days":30}'
done
关于您希望收到的通知,如果请求已启动,CLI 工具将报告“发生客户端错误 (RestoreAlreadyInProgress):对象恢复已在进行中”,并且在恢复后可能会显示不同的消息。您可以多次运行此恢复命令,查找“恢复完成”错误/消息。当然很老套;使用 AWS CLI 工具可能有更好的方法。
Caveat:请小心超过分配的免费恢复量/期限的 Glacier 恢复。如果您恢复太多数据太快,费用可能呈指数级累积。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)