2012-11-26 7 views
3

J'essaie d'utiliser le php sdk avec Glacier pour télécharger des sauvegardes de base de données, j'ai été en mesure de créer et de supprimer des chambres fortes en utilisant le code suivant.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')); 

je vis la fonction uploadArchive(), initiateMultiPartUpload() et uploadMultipartPart(). Si je comprends bien, je dois initialiser le téléchargement, puis commencer à télécharger le fichier, mais je ne suis pas sûr quels sont les paramètres de la fonction prend. Je connais les méthodes parce qu'elles sont mentionnées ici https://github.com/aws/aws-sdk-php/blob/master/src/Aws/Glacier/GlacierClient.php, les paramètres sont un tableau d'arguments je ne peux pas trouver ce que chaque méthode doit fonctionner correctement et la documentation sur glacier et php sdk n'existe pratiquement pas.

Quelqu'un fait-il ce travail? ou trouvé une bonne documentation?

Répondre

6

API docs est disponible pour le SDK 2. Le API docs for the GlacierClient répertorie les paramètres de chaque opération si vous cliquez sur les symboles de hachage à droite.

EDIT: Un recent post on the AWS PHP Development Blog montre comment télécharger des archives vers Amazon Glacier en utilisant les options de téléchargement à une seule et à plusieurs parties. Il existe également le Amazon Glacier Developer Guide publié par AWS. Ce n'est pas spécifique à PHP, mais cela en dit plus sur l'utilisation du service et sur ce que les paramètres signifient.

Bien qu'il ne soit pas documenté dans les documents de l'API, le SDK PHP fonctionne en arrière-plan pour vous aider à télécharger des fichiers pour Glacier. Dans la plupart des cas, le paramètre accountId doit être défini sur "-". Par conséquent, le SDK est défini par défaut si vous n'en définissez aucun. En outre, le SDK calcule les hachages SHA pour vous s'il n'est pas fourni.

Alors, simple UploadArchive exemple (la construction de ce qui était prévu dans la question) pourrait être:

<?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'); 

Il y a encore un manque d'exemples disponibles, mais je vous attendre à ce que pour améliorer au fil du temps. En outre, le AWS SDK for PHP forum est un bon endroit pour poser des questions spécifiquement sur le SDK, car l'équipe SDK surveille constamment les messages là-bas.

+1

Merci d'avoir pris le temps de répondre à ma question, cet extrait de code et le lien docs client glacier sont vraiment utiles. – Zertalx

Questions connexes