【问题标题】:Checking the integrity of an archive uploaded to AWS Glacier检查上传到 AWS Glacier 的档案的完整性
【发布时间】:2019-09-27 06:52:23
【问题描述】:

我们在服务器上创建并存储了每日数据库备份。为了释放空间,决定使用 AWS Glacier 归档所有超过 30 天的备份。 到目前为止一切顺利,我设法编写了一个 PowerShell 脚本来选择所需的文件并将它们上传到 Glacier,但由于我对所有 AWS 东西都不熟悉,我有一个问题:是否可以检查我上传的文件确实在存档中并且没有信息丢失?

我的第一个方法是为我们上传的所有文件发送作业检索请求,然后在 4 小时后比较我们的原始文件和我们从 Glacier 检索到的文件的校验和和存档 ID。但是,我认为这个过程需要很长时间,需要额外的钱,最重要的是,完全没有意义..

我还发现我可以使用库存检索,但据我所知,这种方法与上述方法非常相似,只是无需再次下载所有文件。

最后,如果没有错误,是否有必要尝试确保文件上传成功?我的模糊理解是,如果上传到 Glacier 失败,AWS 会返回错误消息,并在上传期间在内部计算校验和。

我知道 StackOverflow 已经看到了措辞更准确的问题,但我们将非常感谢您对此进行任何澄清。

【问题讨论】:

    标签: amazon-web-services powershell amazon-glacier


    【解决方案1】:

    您必须非常努力地将损坏的文件上传到 Glacier,因为 Glacier 需要随每个 API 请求发送的校验和,如果它们与哈希值不匹配,则会拒绝上传。显然,您需要抽查您的档案,但由于内置保护措施,无需下载和验证每个档案。

    请参阅Amazon S3 Glacier 开发人员指南中的Computing Checksums,了解其在线工作原理。

    然后,考虑完全不使用 Glacier……无论如何,不​​要直接使用。使用 S3,并使用 GLACIERDEEP_ARCHIVE 存储类上传您的文件。或者将它们作为标准上传,并使用生命周期策略在 1 天后将它们移动到存档存储类之一。 (很有用,因为如果您在最短存储时间之前删除 Glacier 或 Deep Archive 上传,您需要为整个最短时间付费……这样您就有 24 小时的“哎呀,我不喜欢我的设置方式”窗口,因为标准存储没有最短存储时间段)。

    使用 S3 是一个更好的解决方案,因为 S3 有更好的 API 和控制台,但定价是相同的,因为 S3 实际上使用 Glacier 作为其后端,而您具有以下优势S3 作为前端。 Glacier 基本上没有控制台功能,非常不透明,并且不是真正为人类交互而设计的——Glacier 似乎被设计为存档系统或服务的后备存储,这正是 S3 使用 Glacier 的方式。

    Amazon Simple Storage Service (Amazon S3) 支持在 S3 存储桶上进行生命周期配置,这使您能够将对象转换到 Amazon S3 GLACIER 存储类以进行归档。当您将 Amazon S3 对象转换为 GLACIER 存储类时,Amazon S3 在内部使用 Glacier 以较低的成本进行持久存储。尽管对象存储在 Glacier 中,但它们仍然是您在 Amazon S3 中管理的 Amazon S3 对象,您无法直接通过 Glacier 访问它们。

    https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html

    令人困惑和不幸的是,AWS 最近通过简化事情混淆了这个问题,将“Glacier”重新命名为“S3 Glacier”,就好像它们是同一个东西,当它们是两种截然不同的服务时,其中一个在一种为您提供通往另一个人的门户的模式。 Glacier 传统上的营销方式同样令人遗憾。如果前面没有 S3,Glacier 就不太适合很多应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多