亚马逊冰川SDK PHP

4

我想使用php sdk和Glacier上传数据库备份,我已使用以下代码创建和删除了数据保险库。

<?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的文档实际上并不存在。 有人使这项工作?或者找到了好的文档吗?
1个回答

6

SDK 2有已发布的API文档。如果您点击右侧的小哈希符号,GlacierClient的API文档会列出每个操作的参数。

编辑:AWS PHP开发博客上的最近一篇文章展示了如何使用单个和分块上传选项将存档上传到Amazon Glacier。

AWS还发布了Amazon Glacier开发人员指南。虽然不是针对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 PHP SDK论坛是一个很好的地方,可以专门发布关于SDK的问题,因为SDK团队在那里不断监视帖子。


1
感谢您抽出时间回答我的问题,那段代码片段和冰川客户端文档链接真的很有帮助。 - Zertalx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接