Guide

Storage OnLine: Utilizzare API S3 con Java e JSP

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.

Web application d'esempio

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:

  • / : directory root della web application, contenente le pagine JSP;
  • /WEB-INF : directory non accessibile da web, normalmente utilizzata per i file di configurazione;
  • /WEB-INF/web.xml : configurazione della web application;
  • /WEB-INF/lib : librerie utilizzate dall'applicazione;
  • /WEB-INF/includes : directory contenente i frammenti di JSP da includere e riutilizzare in varie parti dell'applicazione. Essendo memorizzate in /WEB-INF non sono direttamente accessibili dal browser;

Configurazione e deploy

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 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:

  • WAR file. In questo caso bisogna:
    • creare un archivio hsstorage.zip contenente i file della web application. Attenzione: l'archivio deve avere la stessa struttura della cartella root vista sopra, ovvero WEB-INF e il file index.jsp devono essere al primo livello;
    • modificare l'estensione del file in .war (Web Application aRchive);
    • copiare il file hsstorage.war all'interno della cartella webapps di Tomcat;
    • avviare Tomcat (il server espanderà automaticamente l'archivio);
  • cartella in webapps. In questo caso è necessario:
    • creare una cartella hsstorage dentro webapps sotto Tomcat;
    • copiare tutti i file della web application all'interno di questa cartella;
    • avviare Tomcat.

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.

Risorse: