我有一个具有存储桶策略的s3存储桶,可以在创建x天后将它们的对象发送到冰川。通过将对象移动到冰川storage.When,它工作得很好。稍后我将使用aws php sdk 3.x api检索这些对象。
$result = $client->restoreObject([
'Bucket' => '<string>', // REQUIRED
'Key' => '<string>', // REQUIRED
'RequestPayer' => 'requester',
'RestoreRequest' => [
'Days' => <integer>, // REQUIRED
'GlacierJobParameters' => [
'Tier' => 'Standard|Bulk|Expedited', // REQUIRED
],
],
'VersionId' => '<string>', ])通常情况下,恢复对象可能需要3-5个小时。所以我需要得到一个sns的通知。因为我没有使用vault,所以在恢复对象后,我没有收到任何通知。如何在恢复完成后收到sns通知。
发布于 2019-02-24 09:55:07
S3事件通知现在支持s3:ObjectRestore:Completed。请参阅AWS documentation中的详细信息。您可以将SNS配置为在冰川恢复完成时向您发送通知。
发布于 2017-03-16 21:21:24
对于需要使用head对象api进行轮询的恢复完成,我们将不会获得sns
$result = $s3Client->headObject(array(
'Bucket' => $sourceBucket,
'Key' => "{$archiveKey}/{$sourceKeyname}",
));并比较头对象请求结果
if (isset($res['ongoing-request']) && (strcmp($res['ongoing-request'], '"false"') == 0) && ($result['StorageClass'] == 'GLACIER')) {
$this->log('Survey data id ' . $surveyData['survey_data_id'] . ' in restored state', LogLevel::INFO);}如果条件为真,我们可以引发动作
https://stackoverflow.com/questions/42393668
复制相似问题