我正在开发一个使用 Amazon S3 和 glacier 进行文件存储的应用程序。要求是我想将文件从 S3 移动到冰川,并在需要时从冰川移回 S3。我的问题是,他们的 PHP API 真的有可能吗?
1 回答
您可以使用 API 定义将文件从 Amazon S3 归档到 Amazon Glacier 的生命周期规则,并且可以使用 API 检索归档到 Glacier 的文件的临时副本。但是,您不能使用 API 告诉 Amazon S3 将特定文件移动到 Glacier。
有两种使用 Amazon Glacier 的方法:
- 直接通过 Glacier API,允许您将档案上传/下载到 Glacier 保险库/从 Glacier 保险库上传/下载档案
- 通过 Amazon S3 生命周期规则,将数据从 Amazon S3 归档到 Amazon Glacier
通过 Glacier API 直接连接允许您存储存档以进行长期存储,通常用作磁带的替代品。通过 Glacier API 存储的数据也必须通过 Glacier API 进行检索。这通常使用普通的企业备份软件,甚至是Cloudberry Backup (Windows) 或Arq (Mac) 等轻量级产品来完成。
使用 Amazon S3 生命周期规则,您可以将数据存储在 Amazon S3 中,然后定义确定何时应将数据存档到 Glacier 以进行长期存储的规则。例如,数据可以在创建后 90 天存档。数据传输受生命周期规则管理,这些规则每天都在批处理基础上运行。可以通过putBucketLifecycle API 调用(在 PHP SDK 中可用)来设置规则,但这仅定义了规则——不可能进行 API 调用来告诉 S3 将特定文件存档到 Glacier。
Amazon S3 有一个RestoreObject API 调用(在 PHP 开发工具包中可用),用于将从 Glacier 存档的数据的临时副本恢复回 S3。请注意,从 Glacier 恢复数据需要3-5 小时。