Le interfacce di programmazione REST API S3 sono state create da Amazon per il proprio servizio di cloud storage (Simple Storage Service - S3). Essendo specifiche pubbliche e basandosi su web service di tipo REST, è molto semplice realizzare dei client. Per utilizzare le S3 API con il linguaggio Java e JSP, (come nel caso del php) , abbiamo sostanzialmente due scelte:
AWS SDK for Java è la libreria ufficiale di Amazon per il supporto a tutti i suoi servizi; è quindi molto complessa e ha un gran numero di funzionalità che non servono in questo esempio. Jets3t Toolkit invece è focalizzata (come il nome suggerisce) solamente sulle API S3, per questo motivo verrà utilizzata per gli esempi.
Si tratta di una web application Java realizzata utilizzando solamente pagine JSP e inserendo direttamente il codice all'interno delle pagine. Questo stile di programmazione non è più in uso nell'ambito enterprise da molto tempo, preferendo (a ragione) l'utilizzo di framework MVC, JSF, o altro. Tuttavia, la sua semplicità consente di concentrarsi sul funzionamento delle S3 API. Per rendere tutto più pulito, ma soprattutto per favorire il riuso del codice in altri progetti, abbiamo anche utilizzato le tag library JSTL (Java Standard Tag Libraries).
La struttura della web application è la seguente:
Il primo passo da compiere ora è configurare la web application in modo che possa collegarsi allo spazio di Storage OnLine di Hosting Solutions.
Il punto di accesso S3 è: #ACCESSO_S3# Le credenziali di accesso sono: ID chiave di accesso: #USERNAME# Chiave di accesso segreta: #PASSWORD#
Attenzione. Al posto di #ACCESSO_S3#, #AUSERNAME# e #PASSWORD# ovviamente, sarà necessario inserire i valori corretti che sono quelli visualizzabili nella scheda Gestione Storage del pannello di controllo, nella sezione relativa all'attivazione del protocollo S3; quesit dati, inoltre, si possono trovare anche nalla email che verrà inviata al momento dell'attivazione del protocollo S3 dal pannello di controllo.
Questi valori vanno inseriti all'interno dei <context-param> nel file /WEB-INF/web.xml:
[...] <context-param> <param-name>endpoint</param-name> <param-value>#ENDPOINT#</param-value> </context-param> <context-param> <param-name>accessKey</param-name> <param-value>#ACCESS_KEY#</param-value> </context-param> <context-param> <param-name>secretKey</param-name> <param-value>#SECRET_KEY#</param-value> </context-param> [...]
Una volta inseriti questi valori siamo pronti per il deploy. L'applicazione è compatibile con le specifiche Servlet 2.5, quindi è utilizzabile anche su Tomcat 6.x o superiore, ovvero il servlet engine disponibile sui nostri piani Hosting Platinum Linux e Hosting Enterprise Linux.
È possibile effettuare il deploy in due modi:
Se l'applicazione è configurata correttamente, ci si può accedere tramite l'indirizzo:http://localhost:8080/hsstorage
La pagina iniziale index.jsp si collega allo Storage OnLine e visualizza l'elenco dei bucket disponibili:
In caso di problemi verrà mostrato un messaggio d'errore.