2017-02-22 4 views
0

Ich habe eine s3 Eimer mit einer Eimer-Politik, um ihre Objekte nach x Tagen der Schaffung Gletscher zu senden. Es funktioniert gut durch die Objekte bewegen storage.When zum Gletscher ich diese Objekte abzurufen gehen später aws php sdk 3.x apiSNS-Benachrichtigung nach der Wiederherstellung von Gletscher

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

Normalerweise kann es dauern 3-5 Stunden mit dem Objekt wiederherzustellen. Also muss ich eine SNS-Benachrichtigung dafür bekommen. Da ich den Tresor nicht verwende, erhalte ich nach der Wiederherstellung des Objekts keine Benachrichtigung. Wie erhalte ich nach Abschluss der Wiederherstellung eine SNS-Benachrichtigung?

Antwort

0

Wir werden nicht sns erhalten für die Fertigstellung für die Wiederherstellung müssen wir abfragen Kopf Objekt api mit

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

und vergleichen Sie die Kopfobjektanforderungen

führen
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);} 

und wenn die Bedingung erfüllt ist Wir können die Aktion

auslösen
Verwandte Themen