我有大约 50Gb 的文件存储在 S3 中。昨天我愚蠢地添加了一条生命周期规则,将超过 30 天的文件从 S3 传输到 Glacier,却没有意识到这将禁用指向原始文件的公共(public)链接。
实际上,我真的需要将这些文件保留在 S3 中,因为它们是我们网站上链接的图像和绘图。
我已请求从 Glacier 恢复文件,但据我了解,这对文件在返回 Glacier 之前可用的天数有限制。
我在想我将不得不创建一个新存储桶,然后将文件复制到其中,然后将该新存储桶链接到我的网站。
我的问题:
我对 S3 很陌生(您可能可以从我的愚蠢错误中看出)所以请尽量保持温和
最佳答案
你不需要一个新的桶。您从冰川中恢复对象(暂时),然后使用 COPY 操作覆盖它们,这实质上是创建新对象并且它们会一直存在。不用说,您需要禁用从老化到冰川的生命周期。
临时恢复:
aws s3api restore-object --restore-request Days=7 --bucket <bucketName> --key <keyName>
替换为复制的对象:aws s3 cp s3://bucketName/keyName s3://bucketName/keyName --force-glacier-transfer --storage-class STANDARD
文档说:The transition of objects to the GLACIER storage class is one-way.
You cannot use a lifecycle configuration rule to convert the storage class of an object from GLACIER to STANDARD or REDUCED_REDUNDANCY storage classes. If you want to change the storage class of an archived object to either STANDARD or REDUCED_REDUNDANCY, you must use the restore operation to make a temporary copy first. Then use the copy operation to overwrite the object as a STANDARD, STANDARD_IA, ONEZONE_IA, or REDUCED_REDUNDANCY object.
Ref.
...going back to Glacier
暂时有点迂腐,存档的对象不会在 s3 和 glacier 之间移动,它们永久在 glacier 中,并且在 S3 中制作临时副本 - 重要的是要注意,当您临时恢复时,您需要为 glacier 和 s3 支付费用他们。保留期到期后,将删除 S3 副本。
关于amazon-web-services - 如何从 AWS Glacier 永久恢复到 S3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51670231/