2017-02-22 4 views
0

J'ai un ss s3 avec une politique de seau pour envoyer leurs objets au glacier après x jours de création. Il fonctionne bien en déplaçant les objets du glacier storage.When je vais récupérer ces objets plus tard en utilisant php aws sdk 3.x apiNotification SNS après restauration à partir du glacier

$result = $client->restoreObject([ 
'Bucket' => '<string>', // REQUIRED 
'Key' => '<string>', // REQUIRED 
'RequestPayer' => 'requester', 
'RestoreRequest' => [ 
    'Days' => <integer>, // REQUIRED 
    'GlacierJobParameters' => [ 
     'Tier' => 'Standard|Bulk|Expedited', // REQUIRED 
    ], 
], 
'VersionId' => '<string>', ]) 

Normalement, il peut prendre 3-5 heures pour restaurer l'objet. Donc j'ai besoin d'une notification sns pour ça. Comme je n'utilise pas le coffre-fort pour cela, je ne reçois aucune notification après avoir restauré l'objet. Comment obtenir une notification sns après l'achèvement de la restauration.

Répondre

0

Nous ne se sns pour la restauration terminée pour que nous devons interroger en utilisant l'objet tête api

$result = $s3Client->headObject(array(
     'Bucket' => $sourceBucket, 
     'Key' => "{$archiveKey}/{$sourceKeyname}", 
    )); 

et comparer les demandes d'objet tête résultat

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);} 

et si la condition est vraie nous pouvons élever l'action