2017-02-22 39 views
0

У меня есть ведра s3 с политикой ведра, чтобы отправить свои объекты на ледник после x дней со дня создания. Это работает отлично, перемещая объекты ледника storage.When я иду, чтобы получить эти объекты позже с помощью AWS PHP SDK 3.x апиУведомление SNS после восстановления от ледника

$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. Поскольку я не использую хранилище для этого, я не получаю уведомления после восстановления объекта. Как получить уведомление sns после завершения восстановления.

ответ

0

Мы не получим 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);} 

и если условие истинно мы можем поднять действие

 Смежные вопросы

  • Нет связанных вопросов^_^