【问题标题】:How to upload large archive to Amazon Glacier using ruby and aws-sdk?如何使用 ruby​​ 和 aws-sdk 将大型档案上传到 Amazon Glacier?
【发布时间】:2013-09-04 11:53:09
【问题描述】:

glacier 的亚马逊文档似乎不包含任何 Ruby 示例,而且文档本身相当稀疏。

我知道我需要实例化一个 Glacier 客户端对象,然后使用 upload_multipart_part 方法访问 Glacier API,但不知道如何处理要传递给 upload_multipart_part 的参数。如何计算 AWS 使用 ruby​​ 查找的校验和?什么是upload_id?

更新

通过阅读亚马逊的文档了解了大部分内容。他们似乎没有任何 ruby​​ 代码示例,代码示例的 github 存储库不包括 Glacier。但是通过查看原始 API 文档和一些 Java 和 PHP 示例,看起来我会这样做:

client = AWS::Glacier::Client.new(access_key_id: ACCESS_KEY_ID, secret_access_key: SECRET_ACCESS_KEY)
resp = client.initiate_multipart_upload(account_id: ACCOUNT_ID, vault_name: 'My Vault', archive_description: "Backup of some stuff", part_size: PART_SIZE_IN_BYTES)

如果一切顺利,Amazon API 响应应该包含一个唯一的 upload_id,然后我将在后续调用中使用 client.upload_multipart_part()。

我猜校验和可以这样计算:

Digest::SHA256.file(file_to_upload).hexdigest

更新 2

好像已经解决了:

https://github.com/fog/fog

【问题讨论】:

  • 请考虑上传到 Amazon S3,然后设置生命周期规则以将您的对象移动到 Glacier。这比直接使用 Glacier 容易得多。
  • @phil 但这不是更花钱吗?

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


【解决方案1】:

对于其他感兴趣的人,此链接很有帮助,几乎涵盖了您需要的大部分内容:

http://www.spacevatican.org/2012/9/4/using-glacier-with-fog/

它并没有真正提供有关如何实例化冰川对象的所有详细信息:

glacier = Fog::AWS::Glacier.new({
  :aws_access_key_id => YOUR_ACCESS_KEY_ID,
  :aws_secret_access_key => YOUR_SECRET_ACCESS_KEY
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 2021-07-08
    • 2015-04-30
    相关资源
    最近更新 更多