我正在將文件存儲在AWS S3存儲桶中,並且已經設置了在特定時間段(例如6個月)之後通過AWS控制檯將文件從S3存儲桶移到冰川的選項。如何從S3存儲桶中提取從S3存儲桶移動到Glacier的文件?
文件正在成功從S3移動到冰川。
現在,我想要檢索在Glacier上移動的文件。但是我找不到任何工作方法。
我已經嘗試過參考AWS Glacier的文檔,但沒有運氣。
注意:我們正在嘗試通過PHP SDK或使用PHP的任何其他方式來執行此操作。
我正在將文件存儲在AWS S3存儲桶中,並且已經設置了在特定時間段(例如6個月)之後通過AWS控制檯將文件從S3存儲桶移到冰川的選項。如何從S3存儲桶中提取從S3存儲桶移動到Glacier的文件?
文件正在成功從S3移動到冰川。
現在,我想要檢索在Glacier上移動的文件。但是我找不到任何工作方法。
我已經嘗試過參考AWS Glacier的文檔,但沒有運氣。
注意:我們正在嘗試通過PHP SDK或使用PHP的任何其他方式來執行此操作。
按documentation說:在亞馬遜冰川存儲類
對象是不會立即發生:你必須首先將對象的臨時副本還原到其剷鬥可用之前它。
你需要啓動你的存檔(S3-冰川)對象的恢復操作,這可能需要幾個小時(通常3-5小時)要恢復作爲臨時對象。如果您希望它們在S3存儲桶中永久存在,則可以在恢復完成後在S3存儲桶中創建一個副本。
要啓動恢復作業,您可以使用:
POST Restore Object
,請參閱here。要確定何時恢復作業完成編程,您可以:
恢復作業完成後,您可以在作業中設置的某個時間段內檢索S3存儲桶中的對象。
如果你正在使用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>',
]);
我討厭downvote一個寫得很好的答案一般的模板,但有太多的不正確陳述在這裏。 Glacier API,cli,DescribeJob和SNS主題以及與Glacier服務的直接交互 - 在連接到S3管理控制檯之後,這些都不適用於Glacier存儲類中的S3對象。 S3不會將對象存儲在「您的」冰河帳戶中。它將它們存儲在它自己的一箇中,無法訪問您。 –
嗨@邁克爾,感謝您注意到這個答案。我混合了S3冰川課和冰川本身。正確的答案應該在http://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html。很快就會解決答案。再次感謝。 –
已更新。 –