S3 Glacier 对象未还原

S3 Glacier Objects aren't restored

所以大约 14 小时前,我对我的 S3 存储桶中的 2 个文件夹(相对较大的 10.5 TiB 和 200 GiB)执行了 运行 恢复命令

s3cmd restore --recursive --restore-days=4 -restore-priority=bulk s3://mybucket/folder1/
s3cmd restore --recursive --restore-days=4 -restore-priority=bulk s3://mybucket/folder2/

现在我想使用

将两个文件夹复制到不同的存储桶
aws s3 sync s3://mybucket/folder1/ s3://mybucket2/

aws s3 sync s3://mybucket/folder2/ s3://mybucket2/

但是 aws cli 告诉我,我所有的对象都存储在 class GLACIER 中,我必须先恢复它们。我就是这么想的。当我在 Web 界面中查看它们时,它们似乎已恢复并且已经有过期日期。到期日期是 Apr 14, 2018 2:00:00 AM GMT+0200,所以从现在起超过 4 天(就是我写这篇 Apr 9, 2018 10:30:00 AM GMT+0200 的时候)是否意味着对象只能在 Apr 10, 2018 2:00:00 AM GMT+0200 上可用以符合4 天的恢复时间?

几处编辑:

一)

我至少认为为什么到期日期比 4 天还远,因为 AWS 总是将日期四舍五入到下一个 UTC 午夜,在本例中是 Apr 14, 2018 2:00:00 AM GMT+0200

b)

它还尝试通过 Web 界面下载文件,但没有问题

c)

当我使用 aws s3api head-object --bucket mybucket --key folder1/part1.file 获取元数据时,这是响应:

{
    "Restore": "ongoing-request=\"false\", expiry-date=\"Sat, 14 Apr 2018 00:00:00 GMT\"", 
    "AcceptRanges": "bytes", 
    "ContentType": "binary/octet-stream", 
    "LastModified": "Wed, 20 Dec 2017 15:02:48 GMT", 
    "ContentLength": 59408357, 
    "ETag": "\"49b981b95eaf62abed0880c0db7c1200-8\"", 
    "StorageClass": "GLACIER", 
    "Metadata": {}
}

这似乎应该是这样。

d)

当我尝试使用 aws s3 cp s3://mybucket/folder1/part1.file s3://mybucket2/ 进行复制时,它起作用了,但是 --recursive 不起作用 aws s3 cp --recursive s3://mybucket/folder1/ s3://mybucket2/

如果对象已经冰川恢复,s3 sync with --force-glacier-transfer 应该可以工作

我遇到了同样的问题,以下命令对我有用:

aws s3 cp s3://buckt_name/dir1/ s3://bucket_name/dir1/ --recursive --force-glacier-transfer