无法下载 aws s3 冰川对象
Unable to download aws s3 glacier objects
我试图将所有文件从我的 S3 存储桶复制到 VM 中的本地文件夹,但出现以下错误:
warning: Skipping file s3://bucket/object. 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.
要将文件从我的 S3 存储桶复制到本地文件夹,我使用了以下命令:
aws s3 cp s3://${s3Location} ${localDumpPath}
其中:
${s3Location}
= 我的 s3 位置和
${localDumpPath}
= 我的本地文件夹路径
我需要更改什么才能复制成功?
我使用以下命令解决了这个问题:
aws s3 cp s3://${s3Location} ${localDumpPath} --storage-class STANDARD --recursive --force-glacier-transfer
您还可以参考以下内容link 以获取有关如何使用 AWS CLI 从 Amazon S3 Glacier 存储 class 恢复 S3 对象的详细信息:
Restore S3 object from the Amazon Glacier storage class
问题:您正在尝试复制 aws s3 对象,但存储类型为 glacier,并且出现以下错误:
warning: Skipping file s3://<SomePathToS3Object> 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.
说明:Amazon S3 Glacier是一种安全、持久、成本极低的云存储服务,用于数据归档和长期备份。当您需要使用您执行恢复请求的文件时,您需要支付检索价格,并且在几个小时后该对象将被启用并准备就绪。当很少使用此数据时,此功能通常使用公司存档 files/logs/databases/backups。
解决方案:为了获取冰川文件,您需要发起恢复请求,监控恢复请求的状态,一旦完成更改存储对象class(标准)并复制它。您可以使用 aws reference
//Initate restore request:
$ aws s3api restore-object --bucket examplebucket --key dir1/example.obj \
--restore-request '{"Days":7,"GlacierJobParameters":{"Tier":"Standard"}}'
//monitor status:
$ aws s3api head-object --bucket examplebucket --key dir1/example.obj
// output example - restore in progress
{
"Restore": "ongoing-request=\"true\"",
...
"StorageClass": "GLACIER",
"Metadata": {}
}
// output example - restore completed
{
"Restore": "ongoing-request=\"false\", expiry-date=\"Sun, 1 January 2000 00:00:00 GMT\"",
...
"StorageClass": "GLACIER",
"Metadata": {}
}
$ aws s3 cp s3://examplebucket/dir1/ ~/Downloads \
--storage-class STANDARD --recursive --force-glacier-transfer
你写道你需要“将所有文件复制”到本地文件夹,假设你想递归复制文件。
因为文件保存在 Glacier 存储中 class,您需要先从 Glacier 存档中恢复它们,然后才能将它们复制到本地文件夹,即使文件可用于指定的检索天数。还原完成后,您可以复制指定 --force-glacier-transfer
参数的文件,直到您指定的天数到期为止。
除非您将文件存储在“S3 Glacier Instant Retrieval”存储 class 中,否则您应该首先恢复文件(使它们可供检索),这样 --force-glacier-transfer
选项就不会失败。因此,提出的解决方案不适用于“S3 Glacier Deep Archive”存储class,您必须显式发出restore-object
命令并等待其完成才能使用将文件复制到您的本地文件夹。
但是aws s3api restore-object
只恢复一个文件,不支持递归恢复。 中指定的解决方案不适用于递归目录,或者当您有多个文件时,您希望仅指定文件夹而不是一一列出所有文件。
作为替代方案,您可以将对象的存储 class 更改为 Amazon S3 标准,而不是通过使文件可供检索来恢复文件。为此,您可以通过覆盖现有文件或将文件从一个 S3 位置复制到另一个 S3 位置来复制 S3 中的文件。在每种情况下,您都应该指定正确的目标存储 class.
如果您只需要从 Glacier 存储 class 中检索递归文件而不更改存储 class 或在 S3 中制作额外的副本,您可以使用列出文件的 the Perl script递归,然后分别从 Glacier 恢复它们。此脚本不仅可用于使用指定的还原层启动还原,还可用于监视该过程。
我试图将所有文件从我的 S3 存储桶复制到 VM 中的本地文件夹,但出现以下错误:
warning: Skipping file s3://bucket/object. 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.
要将文件从我的 S3 存储桶复制到本地文件夹,我使用了以下命令:
aws s3 cp s3://${s3Location} ${localDumpPath}
其中:
${s3Location}
= 我的 s3 位置和${localDumpPath}
= 我的本地文件夹路径
我需要更改什么才能复制成功?
我使用以下命令解决了这个问题:
aws s3 cp s3://${s3Location} ${localDumpPath} --storage-class STANDARD --recursive --force-glacier-transfer
您还可以参考以下内容link 以获取有关如何使用 AWS CLI 从 Amazon S3 Glacier 存储 class 恢复 S3 对象的详细信息: Restore S3 object from the Amazon Glacier storage class
问题:您正在尝试复制 aws s3 对象,但存储类型为 glacier,并且出现以下错误:
warning: Skipping file s3://<SomePathToS3Object> 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.
说明:Amazon S3 Glacier是一种安全、持久、成本极低的云存储服务,用于数据归档和长期备份。当您需要使用您执行恢复请求的文件时,您需要支付检索价格,并且在几个小时后该对象将被启用并准备就绪。当很少使用此数据时,此功能通常使用公司存档 files/logs/databases/backups。
解决方案:为了获取冰川文件,您需要发起恢复请求,监控恢复请求的状态,一旦完成更改存储对象class(标准)并复制它。您可以使用 aws reference
//Initate restore request:
$ aws s3api restore-object --bucket examplebucket --key dir1/example.obj \
--restore-request '{"Days":7,"GlacierJobParameters":{"Tier":"Standard"}}'
//monitor status:
$ aws s3api head-object --bucket examplebucket --key dir1/example.obj
// output example - restore in progress
{
"Restore": "ongoing-request=\"true\"",
...
"StorageClass": "GLACIER",
"Metadata": {}
}
// output example - restore completed
{
"Restore": "ongoing-request=\"false\", expiry-date=\"Sun, 1 January 2000 00:00:00 GMT\"",
...
"StorageClass": "GLACIER",
"Metadata": {}
}
$ aws s3 cp s3://examplebucket/dir1/ ~/Downloads \
--storage-class STANDARD --recursive --force-glacier-transfer
你写道你需要“将所有文件复制”到本地文件夹,假设你想递归复制文件。
因为文件保存在 Glacier 存储中 class,您需要先从 Glacier 存档中恢复它们,然后才能将它们复制到本地文件夹,即使文件可用于指定的检索天数。还原完成后,您可以复制指定 --force-glacier-transfer
参数的文件,直到您指定的天数到期为止。
除非您将文件存储在“S3 Glacier Instant Retrieval”存储 class 中,否则您应该首先恢复文件(使它们可供检索),这样 --force-glacier-transfer
选项就不会失败。因此,restore-object
命令并等待其完成才能使用将文件复制到您的本地文件夹。
但是aws s3api restore-object
只恢复一个文件,不支持递归恢复。
作为替代方案,您可以将对象的存储 class 更改为 Amazon S3 标准,而不是通过使文件可供检索来恢复文件。为此,您可以通过覆盖现有文件或将文件从一个 S3 位置复制到另一个 S3 位置来复制 S3 中的文件。在每种情况下,您都应该指定正确的目标存储 class.
如果您只需要从 Glacier 存储 class 中检索递归文件而不更改存储 class 或在 S3 中制作额外的副本,您可以使用列出文件的 the Perl script递归,然后分别从 Glacier 恢复它们。此脚本不仅可用于使用指定的还原层启动还原,还可用于监视该过程。