【发布时间】:2018-01-21 18:45:24
【问题描述】:
AWS 命令行界面 (CLI) 允许 to upload a file to AWS Glacier。但在 AWS Rest API 中也有一个 limit of 4GB for file uploads。如果我需要通过 Rest API 上传大于 4GB 的文件,我需要使用分段上传。
我的问题是:AWS CLI 是否在内部处理大于 4GB 的文件上传,或者在处理大于 4GB 的文件时我是否需要自己处理分段上传?我可以将一个 20Gb 的文件传递给 AWS CLI 的 upload-archive 选项,它就可以工作吗?如果 CLI 不能直接处理大文件上传,有什么命令行工具可以帮我完成(让我免于在部分上传失败时实现所有校验和计算、错误处理和重试逻辑)?
我了解 AWS Rest API 有 4GB 限制,但我找不到任何关于如何在 CLI 中处理此限制的信息。我可以做测试,但我的上传速度不是那么快,我担心会浪费几个小时才发现它不起作用。
【问题讨论】:
-
从 EBS 和 S3 之间的练习来看,CLI 需要明确地处理多部分上传——但这并不难
-
根据您链接到的 cli 文档,您仍然需要自己进行树哈希计算。除非您特别需要仅 Glacier 的功能,例如保险库锁,否则上传到 S3 并使用生命周期策略迁移到 S3 Glacier 存储类可能最能满足您的兴趣。它比直接使用 glacier 更容易使用,并且存储成本基本相同(使用 S3 时每个对象开销 +40KiB)。
-
根据S3 pricing page,在 S3 上存储对象的价格是在 Glacier 上存储价格的 5.75 倍,这让我无法在 S3 上存储对象。
-
虽然实现分段上传并不难,但我正在寻找一个可以使用、已经过测试的命令行工具。
-
这里还有另一个命令行工具来协调分段上传:github.com/numblr/glaciertools。它是一个围绕 aws-cli 构建的纯 bash 脚本。
标签: amazon-web-services aws-cli amazon-glacier