2017-02-22 92 views
0

我有一个s3桶与桶策略,创建x天后将其对象发送到冰川。它致力于通过移动物体冰川storage.When罚款我去取回这些对象后使用AWS PHP SDK 3.x的API从冰川恢复后的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通知。因为我没有使用Vault,所以在恢复对象后我没有收到任何通知。如何在恢复完成后获得sns通知。

回答

0

针对该恢复完成,我们不会得到SNS,我们需要用头对象API

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

,如果条件为真我们可以提高行动