Il nostro servizio di Cloud Object Storage sta divenendo pian piano uno dei servizi comuni a tutti i nostri prodotti, i nostri ingegneri infatti stanno lavorando per rendere questo servizio utilizzabile da tutti i nostri clienti in svariati servizi. Di cosa si tratta? Cloud Object Storage è una piattaforma di cloud computing che permette di salvare file, di qualsiasi tipologia e dimensione, in un ambiente distribuito fra Firenze e Roma, con collegamento dedicato a 1 Gbit/s fra i due data center.
Al pari di Amazon S3, il servizio di cloud storage più famoso al mondo, Cloud Object Storage di HostingSolutions.it, permette di salvare i propri file e accedervi via FTP o direttamente tramite le API di Amazon S3.
Nell’articolo di oggi vediamo come iniziare a utilizzare i nostri servizi di Cloud Object Storage con la scrittura di codice PHP che possa interfacciarsi al nostro storage. Si tratta della prima puntata di una serie di 3 articoli.
Prima di iniziare anche una immagine che mostra la suddivisione dei pacchetti di Cloud Object Storage e le loro caratteristiche:
La soluzione di Cloud Storage di HostingSolutions.it, basata su tecnologia Scality RING, garantisce un accesso sicuro, affidabile e performante ai propri dati. Tutti pacchetti disponibili prevedono l’accesso attraverso S3 REST API; queste non sono altro che delle delle interfacce di programmazione create da Amazon per il suo servizio di cloud storage, Simple Storage Service (S3).
Le specifiche di queste interfacce di programmazione (Application Program Interface – API) sono ben documentate epubblicamente disponibili, ciò ha permesso la nascita di un gran numero di librerie e programmi che le sfruttano; non solo, essendo solamente delle specifiche, diversi provider di storage hanno potuto implementare dei servizi compatibili con le stesse. Scality è uno di questi.
Cos’è REST
Le REST API S3 aderiscono appieno, come il nome suggerisce, al paradigma REST – Representational State Transfer per l’accesso alle risorse via web. Senza entrare troppo nei dettagli possiamo affermare che, rispetto ad altri protocolli (come ad esempio SOAP), REST ha diversi vantaggi:
- è molto più semplice implementare un client: ciò permette di scrivere i programmi più velocemente e con meno errori;
- utilizza la banda disponibile in maniera ottimale;
- permette di sfruttare caratteristiche avanzate del protocollo HTTP, soprattutto a livello di caching.
Tuttavia, nonostante la semplicità delle API, scrivere da sè il codice per eseguire le chiamate HTTP è un processo lungo e macchinoso. Per fortuna però esistono moltissime librerie gratuite già pronte che fanno questo lavoro per noi.
Utilizzo con PHP
Per utilizzare le S3 API con il linguaggio PHP attualmente le alternative più popolari sono due:
- AWS SDK for PHP, lunghissimo acronimo di Amazon Web Services Software Development Kit (!);
- Amazon S3 PHP Class di Donovan Schonknecht.
La prima in realtà è una suite completa di classi per accedere ai tutti i servizi cloud forniti da Amazon (compreso S3). Nei nostri esempi quindi ci limiteremo a Amazon S3 PHP Class, molto più leggera e con meno requisiti rispetto alla “sorella maggiore”.
Vediamo quindi come utilizzare questa libreria nelle proprie applicazioni PHP:
- scaricare la libreria dal sito ufficiale;
- estrarre l’archivio in una directory del server;
- includere il file S3.php (l’unico sorgente) tramite le direttive di require o require_once;
- configurare la classe S3.php.
Ecco un esempio:
<?php require_once 'lib/S3.php'; define('s3AccessKey', 'ID_CHIAVE_DI_ACCESSO'); define('s3SecretKey', 'CHIAVE_DI_ACCESSO_SEGRETA'); define('s3EndPoint', 'rm1.cloudaccess.it'); $s3 = new S3(s3AccessKey, s3SecretKey); $s3->setEndpoint(s3EndPoint); $s3->setSSL(true, false); ?>
Da notare:
- abbiamo copiato la libreria (il file S3.php) all’interno della sotto-directory lib;
- ID_CHIAVE_DI_ACCESSO e CHIAVE_DI_ACCESSO_SEGRETA sono i valori che vi sono stati inviati nella mail di attivazione del servizio, alla voce “Le credenziali di accesso”.
Utilizzeremo questo frammento di codice per tutti gli esempi in PHP, per cui vi consigliamo di salvarlo per poterlo riutilizzare in più file.
Risorse:
- i paccehtti Cloud Storage di HostingSolutions;
- Scality RING.
- REST – Representational State Transfer;
- AWS SDK for PHP;
- Amazon S3 PHP Class;