Accedere al Cloud Object Storage con Perl

Da WikiCloud.

Indice

Utilizzare Amazon-S3-0.41.2

Esistono diverse soluzioni per accedere al proprio bucket utilizzando Perl.

In questo esempio utilizzeremo la seguente libreria:

Progetto Originale: Amazon-S3-0.41.2

Progetto modificato per l'utilizzo con il Cloud Object Storage: Amazon-S3-0.41.2 per Cloud Object Storage

Questa guida è stata sviluppata su una distribuzione Debian GNU/Linux ma dovrebbe funzionare senza grossi problemi anche su altre distribuzioni o architetture.

Installazione Amazon-S3-0.41.2

L'installazione della libreria è molto semplice:

perl Makefile.PL
make
make test
make install

possono essere richieste alcune dipendenze in base ai pacchetti installati sul proprio sistema.

Autenticazione

Di seguito è riportata la parte iniziale per l'autenticazione e le dichiarazioni necessarie al funzionamento della libreria.

#!/usr/bin/perl
use warnings;
use strict;

use Amazon::S3;

use vars qw/$OWNER_ID $OWNER_DISPLAYNAME/;

my $aws_access_key_id     = "cosXXXX";
my $aws_secret_access_key = "XXXXXX";

my $s3 = Amazon::S3->new(
 { aws_access_key_id     => $aws_access_key_id,
   aws_secret_access_key => $aws_secret_access_key
 }
);
my $response = $s3->buckets;

Creare un bucket

Per poter iniziare ad utilizzare il Cloud Object Storage è necessario creare un bucket

 my $bucket_name = "prova";
 my $bucket = $s3->add_bucket( { bucket => $bucket_name } ) or die $s3->err . ": " . $s3->errstr;

Nel bucket è ora possibile inserire gli oggetti.

Caricare un oggetto in un bucket

In questo esempio verrà caricato il file logo.gif presente sul client nel bucket prova.

my $file="logo.gif";
$bucketName="prova";

my $bucket = $s3->bucket($bucketName);
$bucket->add_key_filename($keyname,$keyname);

Prelevare un oggetto da un bucket

Il seguente codice preleva il file "prova.pdf" dal bucket "prova" e lo salva localmente con il nome "$keyname".

my $bucket = $s3->bucket("prova");
my $keyname = 'prova.pdf';
$bucket->get_key_filename($keyname,GET,$keyname);

Mostra il contenuto di un bucket

Visualizza tutti gli oggetti che appartengono ad un bucket. Questa operazione può essere particolarmente onerosa, in termini di prestazioni, in proporzione al numero di oggetti presenti nel bucket.

$response = $bucket->list or die $s3->err . ": " . $s3->errstr;
print $response->{bucket}."\n";
for my $key (@{ $response->{keys} }) {
 print "\t".$key->{key}."\n";
}

Cancellare un oggetto in un bucket

Le seguenti istruzioni cancelleranno il file "logo.gif" dal bucket "prova".

my $bucket = $s3->bucket("prova");
$bucket->delete_key("logo.gif");

Cancellare un bucket

Le istruzioni seguenti cancellano il bucket "prova". Il bucket deve essere vuoto.

my $bucket = $s3->bucket("prova");
$bucket->delete_bucket;
Strumenti personali
Namespace
Varianti
Azioni
Cloud MQTT
Cloud Hosting
Cloud Server
Foundation Server
Cloud Object Storage
Cloud Streaming
Cloud Backup
Navigazione
Strumenti