Amazon web services 使用API以编程方式在AmazonS3和Glacier之间移动文件,反之亦然

Amazon web services 使用API以编程方式在AmazonS3和Glacier之间移动文件,反之亦然,amazon-web-services,amazon-s3,amazon-glacier,Amazon Web Services,Amazon S3,Amazon Glacier,我正在使用Amazon的S3和glacier服务创建一个基于PHP的web应用程序 现在我想给我的网站用户一个功能,他们可以选择任何文件并将其归档(意味着将文件从S3移动到Glacier)和取消归档(意味着将文件从Glacier移动到S3) 我做了一些研究,并没有找到任何可能的方式使用亚马逊的API 问题 如何使用API在S3和glacier之间移动文件?您可以使用API定义将文件从Amazon S3归档到Amazon glacier的生命周期规则,还可以使用API检索归档到glacier的文件

我正在使用Amazon的S3和glacier服务创建一个基于PHP的web应用程序

现在我想给我的网站用户一个功能,他们可以选择任何文件并将其归档(意味着将文件从S3移动到Glacier)和取消归档(意味着将文件从Glacier移动到S3)

我做了一些研究,并没有找到任何可能的方式使用亚马逊的API

问题


如何使用API在S3和glacier之间移动文件?

您可以使用API定义将文件从Amazon S3归档到Amazon glacier的生命周期规则,还可以使用API检索归档到glacier的文件的临时副本。但是,您不能使用API告诉AmazonS3将特定文件移动到Glacier中

使用亚马逊冰川有两种方法:

  • 直接通过Glacier API,该API允许您向冰川保险库上传/下载档案
  • 通过Amazon S3生命周期规则,将Amazon S3中的数据归档到Amazon Glacier中
  • 通过Glacier API直接连接允许您存储档案以供长期存储,通常用作磁带的替代品。通过Glacier API存储的数据也必须通过Glacier API检索。这通常是通过普通的企业备份软件,甚至是(Windows)或(Mac)等轻量级产品来完成的

    使用Amazon S3生命周期规则允许您在Amazon S3中存储数据,然后定义规则,确定数据何时应归档到Glacier进行长期存储。例如,数据可以在创建90天后存档。数据传输由管理,该管理以每日批处理为基础进行操作。这些规则可以通过(在PHP SDK中提供)进行设置,但这只定义了规则——不可能通过API调用通知S3将特定文件归档到Glacier


    AmazonS3有一个(可在PHPSDK中获得)用于将从Glacier归档的数据的临时副本恢复到S3中。请注意,从冰川恢复数据需要3-5个小时

    您可以使用冰川API将文件上载到冰川库,但我不建议这样做。我们以前的版本就是这样做的。当你上传一个文件时,它会得到一个随机分配的名称。您可以将文件名添加到文件的元数据中,但如果您想要一个冰川库中的内容列表,您必须查询,然后等待3-5个小时

    生命周期政策是使用冰川的另一种方式。当前版本的Arq使用它们是因为每个对象看起来仍然像S3对象(没有随机对象名称,获取对象列表时没有延迟),但对象内容在冰川存储器中。唯一的区别是获取对象内容需要两个步骤:您必须调用API;当它准备好了,你就可以开始了。此外,如果您请求对象以过快的速度下载,则会产生“每小时峰值请求费”。这很复杂

    一旦对象是“冰川存储类”,就无法将其更改回“标准存储类”。您必须复制“标准存储类”的对象,并删除冰川对象

    因此,解决您的问题的一个简单方法可能是:

  • 将数据存储在S3、“标准”和“冰川”中的2个“文件夹”中
  • 尽快将“glacier”文件夹中的所有对象推送到glacier数据存储
  • 如果要将对象从标准移动到glacier,请移动到glacier文件夹并删除标准文件夹中的对象(没有“移动”API)
  • 当您想将一个对象从冰川移动到标准位置时,请执行以下操作:;恢复后,将其复制到标准文件夹,然后将其从glacier文件夹中删除

  • 您看过S3生命周期配置的API了吗?我已经用pythonboto完成了。不太清楚PHP。这个问题给人的印象是,首先,您需要更全面地了解S3的冰川集成在概念层面上是如何工作的。。。手动迁移到Glacier不是一件事,当文件从Glacier恢复到S3时,这是暂时的;它们仍然存储在冰川中,而不是移回S3。嗨,John,我遇到了同样的问题,请看看我的问题,文件的当前位置是否有目的和意义(例如,带有硬编码S3位置清单的红移转储),然后可以创建指向前缀的生命周期策略,如果不希望所有内容都位于该前缀下,也可以为生命周期策略指定标记。