Dopo aver visto in funzione ACS, vediamo come utilizzare Titanium per interfacciarsi a quello che è considerato forse il più famoso servizio di cloud disponibile sul mercato: Amazon AWS.
AWS è una collezione di servizi web che compongono la piattaforma cloud di Amazon. I servizi più famosi e conosciuti sono principalmente due: EC2 (Elastic
Compute Cloud) e S3 (Simple Storage Service). Attualmente Amazon conta circa una quarantina di servizi che spaziano dalle funzionalità di database al calcolo, passando per lo storage e i servizi applicativi.
Lo stesso ACS è stato costruito sull'infrastruttura tecnologica di AWS, come possiamo verificare facilmente cercando su sulle pagine del marketplace di Amazon
Cercando sul marketplace di Appcelerator
alcuni moduli che fanno al caso nostro, sia gratuiti che a pagamento. Alcuni di questi sono datati e quindi non funzionanti (Amazon ha cambiato alcune regole ed il formato delle URL dei suoi servizi); quello ufficiale di Appcelerator non è più aggiornato da tre anni e potrebbe essere necessario intervenire manualmente sul codice sorgente che, essendo un modulo commonJS, è visibile e personalizzabile.
Di fronte ad un panorama di questo tipo la tentazione sarebbe quella di costruirsi da sè il modulo, oppure di modificare i sorgenti del modulo AWS gitTio
Ricercando con la parola chiave S3 modulo
Prima di rinunciare del tutto e rimboccarci le maniche per scrivere il codice necessario a implementare i servizi AWS (la maggior parte dei quali sono servizi REST, quindi implementabili usando Ti.Network.HTTPClient
Il repository appena trovato contiene un progetto Alloy che possiamo scaricare, configurare e utilizzare, ma anche un link al modulo commonJS
Scarichiamo la libreria utilizzando git
scaricandone l'archivio zip
progetto in Titanium Studio attraverso le voci di menu File -> Import
General -> Existing projects into workspace
Next
Al termine dell'importazione avremo un nuovo progetto chiamato Ti-Amazon-S3
Per configurare l'applicazione di esempio occorre aprire il controller index.js
uploadFile
var uploadFile = function() {
doUpload({
key: 'YOUR KEY',
secret: 'YOUR SECRET',
bucket: 'YOUR BUCKET',
uploadDir: '/',
gsm: ' -0700',
});
};
Questa funzione eseguirà l'upload di un file dentro un Bucket
Per ottenere queste tre informazioni dovremo prima di tutto iscriverci al servizio AWS, successivamente creare un utente, associare ad esso le permission necessarie a poter operare sui file, ed infine creare un Bucket. Vediamo come farlo passo dopo passo.
L'iscrizione al servizio AWS è gratuita e se già possedede un account Amazon. È necessario soltanto inserire username e password per poter accedere al servizio.
Una volta giunti alla console, dopo aver risposto alle domande del form di iscrizione, procediamo alla creazione di un utente selezionando la voce di menu Identity & Access management Users
Una volta creato il vostro utente, verranno rilasciate due chiavi: una è l'access Key ID Secret Access Key
Creato l'utente, lo selezioniamo dall'elenco e creiamo le User Policy Power user Access
Una volta creato il bucket, possiamo tornare alla nostra applicazione Titanium e configurarla inserendo i corretti valori di key, secret e bucket per poter testare le funzioni di upload fornite da S3.
Il codice sorgente dell'applicazione è allegato all'articolo e disponibile sul repository GitHub di Terry Martin