0

Amazon Glacier でアーカイブを削除しようとしています。私はPHP SDK2でPHP経由でやっています。少し問題があります。ArchiveID を取得するジョブを開始しました。

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

数時間後、ジョブが終了したことを確認できるので、ID を使用してジョブを取得しようとしています。

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

そして、応答として、私はそのようなものを与えられます:

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] => 
        )

)

「archiveDescription」が空である理由を知っている人はいますか?

ArchiveID を取得する別の方法があるかもしれないので、アーカイブを削除できます....

助けてくれてありがとう;D

MK.

4

1 に答える 1

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;
}
于 2013-11-15T09:01:45.297 に答える