我在AWS S3存储桶上存储文件,我们设置了通过AWS控制台在特定时间段(例如6个月)后将文件从S3存储桶移动到Glacier的选项。
文件已成功从S3移至Glacier。
现在,我想要检索在Glacier上移动的文件。但我找不到任何可行的方法。
我已经尝试过引用AWS Glacier的文档,但没有运气。
注意:我们正尝试通过PHP SDK或任何其他方式使用PHP来实现此目的。
答案 0 :(得分:2)
根据documentation说:
无法立即访问Amazon Glacier存储类中的对象:必须先将对象的临时副本还原到其存储桶,然后才能使用。
您需要对归档(S3-Glacier)对象启动还原操作,该操作可能需要几个小时(通常为三到五个小时)才能还原为临时对象。如果您希望它们永久存在于S3存储桶中,则可以在还原完成后在S3存储桶中创建副本。
要启动还原作业,您可以使用:
POST Restore Object
,请参阅here。要确定何时以编程方式完成还原作业,您可以:
还原作业完成后,您可以在S3存储桶中检索您在作业中设置的特定时间段内的对象。
答案 1 :(得分:0)
如果您使用的是PHP SDK,则可以使用此
$objects = $s3Client->restoreObject(array(
'Bucket' => 'Bucket name'
,"Key" => 'File Key which is file bath in S3 bucket'
//,'RequestPayer' => 'requester',
,'RestoreRequest' => [
'Days' => 10,
'GlacierJobParameters' => [
//'Tier' => 'Standard|Bulk|Expedited', // REQUIRED
'Tier' => Expedited, // REQUIRED
]
],
));
以下是此
的常规模板$result = $client->restoreObject([
'Bucket' => '<string>', // REQUIRED
'Key' => '<string>', // REQUIRED
'RequestPayer' => 'requester',
'RestoreRequest' => [
'Days' => <integer>, // REQUIRED
'GlacierJobParameters' => [
'Tier' => 'Standard|Bulk|Expedited', // REQUIRED
],
],
'VersionId' => '<string>',
]);