amazon-web-services - 如何从 AWS Glacier 永久恢复到 S3?

标签 amazon-web-services amazon-s3 amazon-glacier

我有大约 50Gb 的文件存储在 S3 中。昨天我愚蠢地添加了一条生命周期规则,将超过 30 天的文件从 S3 传输到 Glacier,却没有意识到这将禁用指向原始文件的公共(public)链接。

实际上,我真的需要将这些文件保留在 S3 中,因为它们是我们网站上链接的图像和绘图。

我已请求从 Glacier 恢复文件,但据我了解,这对文件在返回 Glacier 之前可用的天数有限制。

我在想我将不得不创建一个新存储桶,然后将文件复制到其中,然后将该新存储桶链接到我的网站。

我的问题:

  • 我想知道是否有办法做到这一点而不必将我的文件复制到新的存储桶中?
  • 如果我只是在文件返回 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/

    相关文章:

    ruby-on-rails - AWS/S3 存储和带宽的详细账单信息

    amazon-web-services - 如何使用我的用户(未经验证)地址作为 Amazon SES 的发件人?

    java - 线程 “main” java.lang.NoClassDefFoundError中的异常:org/apache/hadoop/fs/StreamCapabilities。没有版本问题

    amazon-web-services - 如何在不使用生命周期规则的情况下将 S3 Standard 转换为 Glacier

    amazon-s3 - 如何将文件从远程服务器直接上传到Amazon S3?

    java - AWS Managed ElasticSearch 上的 Elastic Transport 客户端

    amazon-web-services - 如何使用 S3/Cloudfront 在子文件夹中提供 index.html?

    ios - 使用AWS iOS SDK由于未捕获的异常'NSInvalidArgumentException'而终止应用程序

    amazon-web-services - 使用 AWS CLI 列出 Glacier 中的文件

    c# - 如何在 .NET C# 中取消长时间运行的 Amazon Glacier 文件上传操作