2012-11-26 76 views
3

我想使用php sdk和Glacier来上传数据库备份,我能够使用下面的代码创建和删除金库。Amazon Glacier SDK php

<?php 
require 'aws.phar'; 

use Aws\Glacier\GlacierClient; 
use Aws\Common\Enum\Region; 

$aws = GlacierClient::factory(array(
    'key' => 'key', 
    'secret' => 'secret', 
    'region' => Region::US_WEST_2 
)); 
$aws->createVault(array('vaultName'=>'newvault')); 

我看到函数uploadArchive(),initiateMultiPartUpload()和uploadMultipartPart()。 据我所知,我必须初始化上传,然后开始上传文件,但我不确定函数需要哪些参数。

我知道这些方法,因为他们在这里提到https://github.com/aws/aws-sdk-php/blob/master/src/Aws/Glacier/GlacierClient.php,参数是一个参数数组我无法找到每种方法需要正确工作,并且有关冰川和php sdk的文档实际上不存在。

有没有人做这项工作?或找到很好的文档?

回答

6

已发布API docs可用于SDK 2.如果您单击右侧的小哈希符号,API docs for the GlacierClient会列出每个操作的参数。

编辑:A recent post on the AWS PHP Development Blog显示如何使用单个和多部分上传选项将档案上传到Amazon Glacier。

还有AWS发布的Amazon Glacier Developer Guide。它不是特定于PHP,但它更多地讨论如何使用该服务以及参数的含义。

虽然没有在API文档中记录,但PHP SDK在后台执行一些工作来帮助您上传Glacier。在大多数情况下,accountId参数应该设置为"-",所以如果您没有设置,SDK将默认为此。此外,如果未提供,SDK会为您计算SHA哈希值。

所以,简单UploadArchive例如(建设关中问题是提供了什么)可以是:

<?php 

require 'vendor/autoload.php'; // Include Composer autoloader 

use Aws\Glacier\GlacierClient; 
use Aws\Common\Enum\Region; 

$glacier = GlacierClient::factory(array(
    'key' => 'key', 
    'secret' => 'secret', 
    'region' => Region::US_WEST_2 
)); 

$glacier->createVault(array('vaultName' => 'new-vault')); 

$result = $glacier->uploadArchive(array(
    'vaultName'   => 'new-vault', 
    'archiveDescription' => 'This is my new archive', 
    'body'    => 'the contents of the archive', 
)); 

$archiveId = $result->get('archiveId'); 

还有一个缺乏可用的例子,但我期望改善随着时间的推移。另外,AWS SDK for PHP forum是发布关于SDK的问题的好地方,因为SDK团队不断监视那里的帖子。

+1

感谢您花时间回答我的问题,该代码段和冰川客户端文档链接真的很有帮助。 – Zertalx

相关问题