AWS S3 Glacier - 以编程方式启动恢复

2024-03-15

我一直在编写一个网络应用程序,使用 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(使用前将#替换为@)

AWS S3 Glacier - 以编程方式启动恢复 的相关文章

随机推荐

  • SwipeRefreshLayout刷新动画不停止

    我已经实现了一个具有 SwipeRefreshLayout 作为内容视图的片段 刷新动画在 onRefresh 时触发 但即使在从服务器检索数据后将 setRefreshing 设置为 false 刷新动画也不会停止 Override pu
  • 读取 aws 凭证文件的最佳方式

    在我的 python 代码中 我需要提取 AWS 凭证 AWS SECRET ACCESS KEY 和 AWS ACCESS KEY ID 它们存储在纯文本文件中 如下所述 https docs aws amazon com sdkref
  • Google“OpenID Connect”和“使用 Google 登录”之间的区别?

    我希望我的网站的用户使用 Google 帐户进行身份验证 登录我的网站 首要的use case用户将编辑和生成内容 我们希望以安全的方式记录所有权 我们对获取用户谷歌数据不感兴趣 我们只是想要一种对用户进行身份验证的方法 谷歌搜索后 我发现
  • 是否有“std::condition_variable”的“notify_one()”队列?

    考虑第一个线程函数和全局变量 std mutex mut std condition variable officer bool firstPlayerIsReady false bool secondPlayerIsReady false
  • 是否可以在没有 IIS 的情况下使用 Windows 集成身份验证?

    我有一个 nginx 反向代理到一些节点应用程序 我们的用户都位于 Windows 域控制网络上 我知道我可以使用快递 ntlm https github com einfallstoll express ntlm or 护照 window
  • python 错误:ImportError:sys.meta_path 为 None,Python 可能会关闭

    我在pycharm中编写了一个python程序 包括FBCrawl py html login py common glovar py 在glovar py中 我定义了一个变量webdriver browser 并希望在FBCrawl py
  • StringBuffer如何在不创建两个对象的情况下实现append功能?

    这是一个面试问题 我被要求实施StringBuffer追加功能 面试后我看到了代码 但我无法理解如何通过创建单个对象来完成该操作 我是这样想的 String s orange s append apple 这里创建了两个对象 But Str
  • Java 本地化数字格式

    Java 使用小数点的句点 例如1 2 0 5 有没有办法让它使用逗号代替 如 1 2 0 5 并且不要使用逗号来表示千 例如十万 100 000 而是使用空格 100 000 当谈到输出时 我想我可以使用各种字符串格式函数 但问题是输入
  • 从字符串中删除 %0A

    我怎样才能从这个字符串中删除 0A 这是输入关键代码 我需要从整个字符串中删除它 那么我该怎么做呢 input NA 0A 0AJKhell 这是测试 0A Output NAJKhell 这是测试 Update String Commen
  • 每次调用任何其他方法之前调用一个方法

    我有一个类 该类中有一个私有方法和许多公共方法 每次调用任何其他方法之前都必须调用此私有方法 最简单的方法是在每个方法中调用该方法 但我不喜欢这种方法 还有其他方法可以实现这一目标吗 您也许可以使用 AOP 在这里做一些事情 也许通过后锐利
  • 使用 Linq 的属性选择器和Where 查询

    我正在尝试这样做 public class SomeEntityClass public Guid MyClassProperty get set public class AnotherEntityClass public Guid An
  • 如何通过 CocoaPods 使用本地项目

    我正在努力寻找一种方法来将我们创建的 Xcode 框架打包为 Pod 该框架仅在内部使用 不公开 不在 github 上 我该如何修改 podspec从我的开发机器上的本地 Xcode 项目构建 SDK 本地 CocoaPods 依赖管理器
  • 如何检查CRAN镜像是否过时?

    建议R用户从本地CRAN镜像下载R和R包 但有些已经过时了 有没有一种简单的方法来检查存储库是否已过时 R中有什么函数可以做到这一点吗 一种方法是查看 CRANMIRROR src contrib 并按日期排序 通过在日期上单击两次 以便您
  • Java Swing Mac OSX 首选项菜单

    我正在尝试将 首选项 菜单添加到我的 Java Swing 应用程序中 但事实证明它有点令人作呕 我读过很多关于这方面的帖子和文章 听起来很简单 但是 我看到参考文献com apple eawt Application在我找到的示例中 但是
  • PHP imagepng() 正在创建损坏的图像

    我到处寻找可能的解决方案来解决我的问题 不幸的是我似乎无法弄清楚 我有一个 php 文件 它根据其他图像创建图像 我让脚本完全按照现在的方式运行 没有任何缺陷 但在摆弄其他一些文件后 它突然停止工作 并在 Firefox Chrome 和
  • Android:MediaPlayer 已定稿但未发布

    我正在我当前正在开发的应用程序中使用 MediaPlayer 类 我想在 Activity 的生命周期内保留 MediaPlayer 类的实例 我在 Activity 的 onPause 方法中释放 MediaPlayer 类中的资源 但是
  • 在带有 webpack 的 Angular cli 中,如何关闭 ng 服务上的 typescript linting

    在带有 webpack 的 Angular cli 中 如何关闭 ng 服务上的 typescript linting 我遇到一些愚蠢的错误 需要跳过 我可以做他们的任何角度 cli 设置来关闭正在检查的打字稿吗 这是我使用的应用程序 ht
  • Android setRequestProperty 在 url.openConnection()

    我有一个 Android 应用程序需要在连接中设置请求属性 这是我的代码 URL url new URL sUrl HttpURLConnection connection HttpURLConnection url openConnect
  • 删除数字字符串python [重复]

    这个问题在这里已经有答案了 对于我的作业 我必须创建一个函数 该函数返回一个与给定字符串相同的新字符串 但删除了数字 示例 删除数字 abc123 将返回字符串 abc 我已经尝试了几乎所有我能想到的方法 但它不能正常工作 def test
  • AWS S3 Glacier - 以编程方式启动恢复

    我一直在编写一个网络应用程序 使用 s3 进行存储 使用 Glacier 进行备份 所以我设置了生命周期策略来存档它 现在我想编写一个列出存档文件的网络应用程序 用户应该能够从中启动恢复 然后在恢复完成后收到一封电子邮件 现在我遇到的麻烦是