Irf*_*ISH 12 amazon-s3 amazon-web-services amazon-glacier
我正在使用亚马逊的S3和冰川服务创建基于PHP的Web应用程序.
现在我想为我的网站用户提供一个功能,他们可以选择任何文件并将其归档(意味着将文件从S3移动到Glacier)并取消归档(意味着将文件从Glacier移动到S3).
我做了一些研究,但没有找到任何使用亚马逊API的方法.
问题
如何使用API在S3和冰川之间移动文件?
小智 26
您可以使用Glacier API将文件上传到Glacier文件库,但我不建议这样做.我们备份应用程序的早期版本就是这样做的.上传文件时,它会获得一个随机分配的名称.您可以将文件名添加到文件的元数据中,但如果您需要查询Glacier文件库中的内容列表,则必须查询该列表,然后等待3-5个小时.
生命周期策略是使用Glacier的另一种方式.当前版本的Arq使用它们,因为每个对象看起来仍然像S3对象(没有随机对象名称,没有获取对象列表的延迟),但对象内容在Glacier存储中.唯一的区别是获取对象内容是一个两步过程:您必须进行API调用以请求可以下载该对象 ; 当它准备好了,你可以下载它.如果您要求以太快的速度下载对象,还会产生"每小时高峰请求费".亚马逊冰川的定价很复杂.
一旦对象是"Glacier存储类",就无法将其更改回"标准存储类".您必须复制"标准存储类"对象并删除Glacier对象.
所以也许你的问题的简单解决方案是:
您可以使用API定义将文件从Amazon S3归档到Amazon Glacier的生命周期规则,还可以使用API检索归档到Glacier的文件的临时副本。但是,您不能使用该API来告诉Amazon S3将特定文件移动到Glacier中。
有两种使用Amazon Glacier的方法:
通过Glacier API直接连接允许您存储存档以进行长期存储,通常用作Tape的替代品。通过Glacier API存储的数据也必须通过Glacier API检索。通常使用普通的企业备份软件甚至是轻量级产品(例如Cloudberry Backup(Windows)或Arq(Mac))来完成此操作。
使用Amazon S3生命周期规则,您可以将数据存储在Amazon S3中,然后定义规则,确定何时应将数据归档到Glacier进行长期存储。例如,数据可以在创建90天后存档。数据传输受生命周期规则控制,该规则每天运行。可以通过putBucketLifecycle API调用(在PHP SDK中提供)来设置规则,但这只能定义规则-无法进行告诉S3将特定文件存档到Glacier的API调用。
Amazon S3具有一个RestoreObject API调用(在PHP SDK中可用),以将从Glacier存档的数据的临时副本还原回S3。请注意,从Glacier恢复数据需要3-5个小时。
归档时间: |
|
查看次数: |
22212 次 |
最近记录: |