【问题标题】:Retrieve one file from AWS Glacier using cli使用 cli 从 AWS Glacier 检索一个文件
【发布时间】:2021-02-11 03:45:52
【问题描述】:

我已将数千个视频文件上传到 S3 存储桶,然后更改存储桶管理设置以将文件迁移到 Glacier。我正在尝试检索单个文件并将其复制到我的本地计算机。通常,我按照说明here 进行操作。我使用 S3 管理控制台,选择“操作”以从 Glacier 恢复所选文件,然后使用以下命令下载它:

aws s3 cp s3://my-bucket/my_video_file.mp4 .

这可以按我的意愿工作,但我想知道是否有一种方法可以从 Glacier 恢复文件,而无需通过 Web 浏览器登录并手动选择它进行检索。查看aws s3 cp 的文档,有一个名为--force-galcier-transfer 的选项,但是当我将它包含在我的命令中时,我得到以下信息:

Object is of storage class GLACIER. Unable to perform download operations on GLACIER objects. You must restore the object to be able to perform the operation. See aws s3 download help for additional parameter options to ignore or force these transfers.

这是来自the manual page的命令中的段落:

--force-glacier-transfer (boolean) Forces a transfer request on all Glacier objects in a sync or recursive copy.

是否可以在单个 cli 命令中从 glacier 检索和下载单个文件,还是我总是需要先使用管理控制台来检索文件?如果可以这样做,我也愿意使用 python 脚本或类似的东西。

【问题讨论】:

  • 根据AWS S3 Sync --force-glacier-transfer--force-glacier-transfer 选项“不会进行另一次还原,它只是忽略 API 表示对象在 Glacier 中并尝试无论如何。如果对象不在,它将失败已恢复(它不会尝试恢复它)。请注意,这仅适用于递归命令(例如,带有 --recursive 的同步和 cp/mv),如果您只复制 1 个文件,它将在没有强制标志的情况下工作。

标签: amazon-web-services amazon-s3 command-line-interface


【解决方案1】:

您可以使用 CLI 从 glacier 恢复文件,但无法在单个命令中同时恢复和下载文件,因为您需要从 glacier 恢复文件,然后再过一段时间,也许几个小时后,之后恢复完成,下载文件。

要恢复文件,请使用如下命令:

aws s3api restore-object --bucket bucketname --key path/to/object.zip --restore-request '{"Days":25,"GlacierJobParameters":{"Tier":"Standard"}}'

您可以使用如下命令检查恢复请求的状态:

aws s3api head-object --bucket bucketname --key path/to/object.zip

这将输出一个带有 S3 对象详细信息的 json 对象,包括状态:

.... While the restore is still in progress ...
    "Restore": "ongoing-request=\"true\"",
.... Or, when the restore is done ...
    "Restore": "ongoing-request=\"false\", expiry-date=\"...\"",

从那里,它是 S3 中的一个对象,您可以简单地将其复制到本地计算机:

aws s3 cp s3://bucketnamepath/to/object.zip object.zip

当然,所有这些都可以编写脚本。 Python 中的 boto3 使得遵循同样的模式变得相当简单,但几乎可以用任何你喜欢使用的语言来做到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多