我有一个带有存储桶策略的s3存储桶,可在创建x天后将其对象发送到冰川。它通过将对象移动到冰川存储工作正常。当我以后使用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通知。由于我没有使用保险库,因此在恢复对象后我没有收到任何通知。恢复完成后如何获得sns通知。
答案 0 :(得分:0)
我们不会因为需要使用head object 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);}
如果条件为真,我们可以提出行动