繁体   English   中英

无法使用php从Amazon Glacier下载存档文件

[英]Cannot download archived files from Amazon Glacier using php

我正在尝试从亚马逊冰川下载文件。 我已经开始工作,并成功获得了jobId。

现在正在使用下面的代码下载我的存档上传文件,但显示此响应

object(Aws\Result)#129 (2) { 
    ["data":"Aws\Result":private]=> array(8) { 
        ["body"]=> object(GuzzleHttp\Psr7\Stream)#114 (7) {
            {"stream":"GuzzleHttp\Psr7\Stream":private]=> resource(118) of type (stream) 
            ["size":"GuzzleHttp\Psr7\Stream":private]=> NULL 
            ["seekable":"GuzzleHttp\Psr7\Stream":private]=> bool(true) 
            ["readable":"GuzzleHttp\Psr7\Stream":private]=> bool(true) 
            ["writable":"GuzzleHttp\Psr7\Stream":private]=> bool(true) 
            ["uri":"GuzzleHttp\Psr7\Stream":private]=> string(10) "php://temp" 
            ["customMetadata":"GuzzleHttp\Psr7\Stream":private]=> array(0) { } } 
            ["checksum"]=> string(0) "" 
            ["status"]=> int(200) 
            ["contentRange"]=> string(0) "" 
            ["acceptRanges"]=> string(5) "bytes" 
            ["contentType"]=> string(16) "application/json" 
            ["archiveDescription"]=> string(0) "" 
            ["@metadata"]=> array(4) { 
                ["statusCode"]=> int(200) 
                ["effectiveUri"]=> string(161) "https://glacier.us-east-2.amazonaws.com/-/vaults/myvault/jobs/my-jobid-removed-for-privacy/output" 
                ["headers"]=> array(5) { 
                    ["x-amzn-requestid"]=> string(47) "AXVtTY2JMZzODN_Yya2c" 
                    ["accept-ranges"]=> string(5) "bytes" 
                    ["content-type"]=> string(16) "application/json" 
                    ["content-length"]=> string(3) "124" 
                    ["date"]=> string(29) "Thu, 15 Aug 2019 14:51:40 GMT" 
                } 
                ["transferStats"]=> array(1) { 
                    ["http"]=> array(1) { 
                        [0]=> array(0) { } 
                    } 
                } 
            } 
        } 
        ["monitoringEvents":"Aws\Result":private]=> array(0) { } 
    } 

我是否需要设置任何权限。 我的档案文件是私人的。 有人可以告诉我一些事吗

这是代码

require 'vendor/autoload.php';
use Aws\Glacier\GlacierClient;
use Aws\Glacier\TreeHash;


$client = new GlacierClient([
    'version' => 'latest',
    'region' => 'my-region',
    'credentials' => [
        'key'    => 'my key',
        'secret' => 'my secret'
    ]
]);

$result = $client->getJobOutput([
    'accountId' => '-',
    'jobId' => 'my job id',
    'vaultName' => 'my valt name here', 
]);


var_dump($result);
echo $data = $result->get('body'); 

不要忘记,Glacier中的文件需要花费一些时间才能“解冻”以变得可下载和可用。 这就是Glacier比S3便宜得多的确切原因。

这里是一个示例的链接 ,该示例如何确定何时可以下载文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM