SDK Amazon Glacier PHP

Я пытаюсь использовать 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(), инициироватьMultiPartUpload() и uploadMultipartPart(). Насколько я понимаю, мне нужно инициализировать загрузку, а затем начать загрузку файла, но я не уверен, какие параметры принимает функция.

Я знаю методы, потому что они упомянуты здесь https://github.com/aws/aws-sdk-php/blob/master/src/Aws/Glacier/GlacierClient.php, параметры представляют собой массив аргументов, я не могу найти, что нужно каждому методу чтобы нормально работало, а документации по glacier и php sdk практически не существует.

Кто-нибудь делает эту работу? или нашли хорошую документацию?


person Zertalx    schedule 26.11.2012    source источник


Ответы (1)


Опубликованы документы по API, доступные для SDK 2. Документация по API для GlacierClient перечисляет параметры для каждой операции, если вы нажмете на маленькие символы решетки справа.

РЕДАКТИРОВАТЬ: недавний пост на В блоге AWS PHP Development Blog показано, как загружать архивы в Amazon Glacier, используя как одиночные, так и составные варианты загрузки.

Существует также Руководство для разработчиков Amazon Glacier, опубликованное AWS. Это не относится к PHP, но больше говорит о том, как использовать сервис и что означают параметры.

Хотя PHP SDK не задокументирован в документации по API, он выполняет некоторую работу в фоновом режиме, чтобы помочь вам с загрузкой для 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 для PHP — хорошее место для размещения вопросов. особенно о SDK, так как команда SDK постоянно следит за сообщениями там.

person Jeremy Lindblom    schedule 05.12.2012
comment
Спасибо, что нашли время ответить на мой вопрос, этот фрагмент кода и ссылка на документацию клиента glacier действительно полезны. - person Zertalx; 08.12.2012