Accedere al Cloud Object Storage con PHP
Da WikiCloud.
Indice |
Utilizzare amazon-s3-php-class
Esistono diverse soluzioni per accedere al proprio bucket utilizzando PHP.
In questo esempio utilizzeremo la seguente classe:
Progetto Originale: amazon-s3-php-class
Classe modificata per l'utilizzo con il Cloud Object Storage: amazon-s3-php-class per Cloud Object Storage
Richiede CURL attivo
Autenticazione
Per poter accedere al Cloud Object Storage è necessario autenticarsi con le credenziali inviate al momento dell'attivazione.
require_once('S3.php'); $AccessKey="cosXXXX"; $SecretKey="XXXXXX"; $s3 = new S3($AccessKey, $SecretKey);
Da inserire in ogni file o chiamara al Cloud Object Storage.
Creare un bucket pubblico
Per poter iniziare ad utilizzare il Cloud Object Storage è necessario creare un bucket
$bucketName="prova"; $s3->putBucket($bucketName, S3::ACL_PUBLIC_READ);
Nel bucket è ora possibile inserire gli oggetti.
Visualizzare i bucket esistenti
Con l'esempio riportato di seguito è possibile vedere la lista dei bucket presenti nel nostro account. Il primo esempio mostra un semplice elenco, mentre il secondo riporta alcune informazioni sul bucket.
print_r(S3::listBuckets()); print_r(S3::listBuckets(true));
Caricare un oggetto in un bucket
In questo esempio verrà caricato il file logo.gif presente sul client, con il nome assegnato alla variabile $saveName.
$file="logo.gif"; $saveName="logo.gif"; $bucketName="prova"; $s3 = new S3($AccessKey, $SecretKey); if (S3::putObject(S3::inputFile($file), $bucketName, $saveName, S3::ACL_PRIVATE)) { echo "File uploaded."; } else { echo "Failed to upload file."; }
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.
$bucketName="prova"; if (($contents = $s3->getBucket($bucketName)) !== false) { foreach ($contents as $object) { print_r($object); } } Array ( [name] => logo.gif [time] => 1303364731 [size] => 1832 [hash] => )
Cancellare un oggetto in un bucket
Le seguenti istruzioni cancelleranno il file "logo.gif" dal bucket "$bucketName".
$file="logo.gif"; if (S3::deleteObject($bucketName, $file)) { echo "Deleted file."; }
Cancellare un bucket
if (S3::deleteBucket($bucketName)) { echo "Deleted bucket"; }