2013-11-09 61 views
0

我想删除我在亚马逊冰川的档案。我通过使用PHP SDK2的PHP来完成它。 我有一个小问题..我已经发动工作,让ARCHIVEID:几个小时,可以看到工作完成后亚马逊冰河PHP和工作

$this->client->initiateJob(array(
    'accountId' => '-', 
    'vaultName' => $aValutName, 
    'Type' => "inventory-retrieval") 
); 

,所以我想用它的ID来获得工作的:

$res = $this->client->getJobOutput(array(
     'accountId' => '-', 
     'vaultName' => $aValutName, 
     'jobId' => $aJobID, 
    )); 

,并作为respons我给出了这样的事情:

Guzzle\Service\Resource\Model Object 
(
    [structure:protected] => 
    [data:protected] => Array 
     (
      [body] => Guzzle\Http\EntityBody Object 
       (
        [contentEncoding:protected] => 
        [rewindFunction:protected] => 
        [stream:protected] => Resource id #152 
        [size:protected] => 
        [cache:protected] => Array 
         (
          [wrapper_type] => PHP 
          [stream_type] => TEMP 
          [mode] => w+b 
          [unread_bytes] => 0 
          [seekable] => 1 
          [uri] => php://temp 
          [is_local] => 1 
          [is_readable] => 1 
          [is_writable] => 1 
         ) 

        [customData:protected] => Array 
         (
          [default] => 1 
         ) 

       ) 

      [checksum] => 
      [status] => 200 
      [contentRange] => 
      [acceptRanges] => bytes 
      [contentType] => application/json 
      [archiveDescription] => 
     ) 

) 

有enybody知道为什么 “archiveDescription” 是空的?

也许有另一种方式来获得ARCHIVEID所以我能删除我的档案....

感谢名单的任何帮助; d

MK。

回答

0

OK,该解决方案是太容易了......

public function getJobResult($aValutName, $aJobID) { 
    $res = $this->client->getJobOutput(array(
     'accountId' => '-', 
     'vaultName' => $aValutName, 
     'jobId' => $aJobID, 
    )); 
    $body = EntityBody::factory($res['body']); 
    $body->rewind(); 
    $inventory = stream_get_contents($body->getStream()); 
    $ArchiveList = json_decode($inventory,1)['ArchiveList']; 
    $res = array(); 
    foreach($ArchiveList as $archive): 
     $res[]=$archive['ArchiveId']; 
    endforeach; 


    return $res; 
}