Metadata-Version: 2.0
Name: gcloud-storage-api
Version: 0.0.65
Summary: gCloud - The Cloud made in Italy Python API
Home-page: http://gcloud.schema31.it
Author: Ilario Febi
Author-email: ifebi@schema31.it
License: BSD
Keywords: gcloud,schema31,Schema 31
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: Italian
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Environment :: Console
Requires-Dist: requests
Requires-Dist: argparse

Descrizione del Servizio gCloud Storage
=======================================

Introduzione a gCloud
---------------------

**gCloud** è il servizio 100% italiano di *Storage & Retrieval* che consente di memorizzare i dati in qualsiasi formato, in qualsiasi momento, da qualsiasi posizione, assicurandone la disponibilità sempre e da qualunque piattaforma.

La soluzione **gCloud** si caratterizza per l’uso di tecnologie e infrastrutture totalmente italiane. 

Il codice a filiera controllata è prodotto e gestito internamente da Schema31_, società ICT italiana fra le prime ad ottenere l’iscrizione all’**Albo dei Conservatori Accreditati**. 


    .. image:: http://storage.gcloud.schema31.it/obj/9bc45749-e211-445f-9519-0fc77d0ef5bb
        :target: http://www.schema31.it/
        :alt: Schema31


Per sua costituzione, quindi, **gCloud** garantisce totale aderenza alle normative vigenti italiane, il che lo rende fondamentale per lo sviluppo di servizi pensati specificamente per la realtà italiana, quali ad esempio la **Conservazione Sostitutiva a Norma**.

**gCloud** mette a disposizione per i developers una piattaforma di **Storage as a Service** (SaaS) ed un nutrito corredo di **Application Programming Interfaces** (API) cui far riferimento nelle proprie attività di sviluppo.

Ciò rende possibile la gestione di documenti e dati in sicurezza ed affidabilità, attraverso comode interfacce accedibili sotto forma di *WebServices*.


È possibile visualizzare la videoguida al servizio di gCloud:


    .. image:: http://storage.gcloud.schema31.it/obj/49003e17-4149-4871-9631-bb3111224ea1
        :target: https://www.youtube.com/watch?v=4JA-ZugZkFE
        :alt: Upload


e i due videotutorial per scoprire, invece, come utilizzare il pannello di amministrazione:


    .. image:: http://storage.gcloud.schema31.it/obj/b4bc4883-7551-4135-a557-e09817f25616
        :target: https://www.youtube.com/watch?v=SPBby-z1m6I
        :alt: Upload


    .. image:: http://storage.gcloud.schema31.it/obj/ffac1141-26f6-4421-806b-02a68e8fde42


    .. image:: http://storage.gcloud.schema31.it/obj/0a361b9d-af85-47fc-a545-87b5aa5ad10a
        :target: https://www.youtube.com/watch?v=SPBby-z1m6I
        :alt: Upload


Inizia subito ad utilizzare gCloud con la versione gratuita disponibile a `questo indirizzo <http://gcloud.schema31.it/#prezzo>`_.


    .. image:: http://storage.gcloud.schema31.it/obj/ffac1141-26f6-4421-806b-02a68e8fde42





.. _Schema31: http://www.schema31.it/





------------

Installazione e Utilizzo di base
================================

Installazione
-------------

Linux
''''''
Installazione di pip
^^^^^^^^^^^^^^^^^^^^
Se non è già presente, è necessario installare il sistema di packaging PIP:

Distribuzioni basate su DEB (Debian, Ubuntu, ecc.)
__________________________________________________

::

 sudo apt-get install python-pip

Distribuzioni basate su RPM (RedHat, CentOS, Fedora, ecc.)
__________________________________________________________

::

 sudo yum -y install python-pip

Altre distribuzioni:
____________________
seguire:
https://pip.pypa.io/en/latest/installing.html


Installazione di gcloud_storage_api
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

::

 sudo pip install gcloud_storage_api


MacOsX
''''''

::

 sudo easy_install pip
 sudo pip install gcloud_storage_api


Microsoft Windows
''''''''''''''''''
Scarica ed installa Python_ dal sito ufficiale, il sistema di packaging PIP è incluso nell'installazione base a partire dalla versione 2.7.9

.. _Python: http://www.python.org/dowload/

::

 C:\Users\robota>cd \Python27\Scripts
 C:\Python27\Scripts>pip.exe install gcloud_storage_api








------------

.. image:: http://storage.gcloud.schema31.it/obj/ffac1141-26f6-4421-806b-02a68e8fde42


Come utilizzare un repository gGcloud Storage
=============================================


.. image:: http://storage.gcloud.schema31.it/obj/ffac1141-26f6-4421-806b-02a68e8fde42


Registrazione
-------------

Per poter utilizzare le funzionalità di gCloud occorre effettuare la registrazione.

La registrazione si effettua accedendo alla `Home Page di gCloud <http://gcloud.schema31.it>`_ e cliccando su **Registrati**.


	.. image:: http://storage.gcloud.schema31.it/obj/1402ba0a-99f7-417e-b57b-e85410547563
		:target: http://gcloud.schema31.it
		:alt: gCloud


Sarà quindi possibile creare un account utilizzando uno dei provider di autenticazione disponibili.

Una volta completate tutte le fasi della registrazione a gCloud, sarà possibile effettuare il Login e cominciare ad utilizzare tutte le sue funzionalità.


.. image:: http://storage.gcloud.schema31.it/obj/ffac1141-26f6-4421-806b-02a68e8fde42


Login
-----

Per poter accedere al `Pannello di amministrazione di gCloud <http://admin.gcloud.schema31.it>`_ è necessario effettuare il login utilizzando uno dei provider di autenticazione disponibili.

Una volta autenticati, è possibile accedere alla **Dashboard** e al menu laterale sinistro che consente di utilizzare le diverse funzionalità di gCloud. 


	.. image:: http://storage.gcloud.schema31.it/obj/302f4b5b-c65f-4dc9-b000-6c2da0b0b0c4
	   :alt: dashboard


La **Breadcrumb** (o barra superiore) indica la posizione della pagina attuale rispetto alla struttura dell’applicativo e permette di tornare ai livelli superiori cliccando sulle rispettive voci.  


	.. image::  http://storage.gcloud.schema31.it/obj/f6770f5a-e922-4a8e-bffd-4956bcafa5ba


Creazione di un repository
--------------------------

Un **repository** è il contenitore in cui vengono salvati i file su **gCloud**.
Cliccando sul tasto **Storage** è possibile accedere alla sezione relativa al Livello di Servizio sottoscritto.
Dal livello di servizio dipende anche il numero di repository che è possibile creare.

La sezione **Storage** mostra tutti i repository già definiti e le statistiche di utilizzo complessive (spazio occupato e conteggio di upload / download effettuati).

Cliccando su **Crea un nuovo repository** si accede al pannello di settaggio delle caratteristiche del nuovo *repository*: nome, stato di abilitazione (un *repository* disabilitato è accessibile dal solo pannello di controllo) e privilegi di accesso (un repository **pubblico** è accessibile da chiunque, mentre un repository **privato** è accessibile solo tramite autenticazione).


	.. image:: http://storage.gcloud.schema31.it/obj/6a604c10-7873-4a5a-9d47-ebdf937b6caf
	   :alt: newRepository


Una volta completato il settaggio, cliccando sul tasto **Salva** il nostro repository viene creato.


	.. image:: http://storage.gcloud.schema31.it/obj/f6770f5a-e922-4a8e-bffd-4956bcafa5ba


Salvataggio di un file
----------------------

Una volta creato, il nuovo repository è subito pronto all’uso.
E’ possibile quindi visualizzare la pagina di dettaglio dove vengono riportate:

1. statistiche di utilizzo del repository
2. la configurazione attuale del repository
3. l’elenco delle chiavi di autenticazione associate
4. l’elenco delle condivisioni effettuate. 


Cliccando su **Esplora** file si accede alla pagina di elenco dei file salvati nel repository.

Cliccando sul tasto **Apri gestore upload** si accede alla sezione relativa all’upload dei file.

Si apre una nuova finestra per la selezione dei file da aggiungere al repository.

Selezioniamo tutti i file che intendiamo aggiungere, tramite il tasto Aggiungi file e clicchiamo su Inizia Upload per procedere al loro salvataggio.

Terminata la procedura di salvataggio, i file sono subito pronti all’uso e gestibili tramite il menù **Azioni** posto alla destra di ciascuna risorsa.


	.. image:: http://storage.gcloud.schema31.it/obj/f6770f5a-e922-4a8e-bffd-4956bcafa5ba


Gestione dei file
-----------------

La gestione delle risorse è possibile accedendo alla sezione **Esplora file**.


	.. image:: http://storage.gcloud.schema31.it/obj/3ab189a6-9202-46d8-9ca7-30f1222da913
	    :alt: Upload


Sul lato destro di ogni risorsa è possibile visualizzare il menu di gestione dei file.

Oltre a visualizzare i dettagli completi del singolo file, è possibile modificarlo, sostituirlo, oltre a generare una shortUrl per la condivisione, in caso di repository privato. Cliccando, ad esempio, su **Download file** viene avviata la procedura di download e cliccando su **Cancella file** il file viene spostato nel cestino.


	.. image:: http://storage.gcloud.schema31.it/obj/f6770f5a-e922-4a8e-bffd-4956bcafa5ba


Gestione di un repository
--------------------------

Nella pagina di dettaglio del *repository* è possibile visualizzare le sue caratteristiche e accedere a tutte le funzionalità di gestione, tra cui:

1. modificare le proprietà di un repository e le sue opzioni avanzate
2. eliminare il repository
3. cancellare tutti i file contenuti all’interno del repository

e altre ancora.


	.. image:: http://storage.gcloud.schema31.it/obj/88993db0-73f8-4190-9379-92226ef23b83
	   :alt: repository





------------

.. image:: http://storage.gcloud.schema31.it/obj/ffac1141-26f6-4421-806b-02a68e8fde42


Utilizzo della command line Interface
--------------------------------------

Help
''''
::

 ifebi@qui ~ $ gcloud_storage --help
 usage: gcloud_storage [-h] -w {detail,send,get,delete,ls,version} -r
                      REPOSITORYNAME -k AUTHKEY [-f FILEKEY] [-l LOCAL_FILE]
                      [-p PUBLIC_NAME] [-d]

 gCloud Info test

 optional arguments:
  -h, --help            show this help message and exit
  -w {detail,send,get,delete,ls,version}, --what {detail,send,get,delete,ls,version}
                        What??
  -r REPOSITORYNAME, --repositoryname REPOSITORYNAME
                        Nome del repository
  -k AUTHKEY, --authkey AUTHKEY
                        Authentication key
  -f FILEKEY, --filekey FILEKEY
                        FileKey
  -l LOCAL_FILE, --local-file LOCAL_FILE
                        File locale da inviare o dove scaricare
  -p PUBLIC_NAME, --public-name PUBLIC_NAME
                        Nome del file sul repository
  -d, --is-different    verifica se il file locale e remoto sono uguali


.. image:: http://storage.gcloud.schema31.it/obj/ffac1141-26f6-4421-806b-02a68e8fde42


Autenticazione:
---------------

Per utilizzare cgloud_storage via command line è necessario specificare sempre i parametri di autenticazione che identificano il repository sul quale si intende lavorare.

In questo esempi, al fine di evitare inutili ripetizioni, verranno impostate le due seguenti variabili bash:

::

 REPONAME=api_python
 REPOKEY=Tb4vjY0f3mV0HRyo4F0LyOQql87vxguROKK5Jz3H


.. image:: http://storage.gcloud.schema31.it/obj/ffac1141-26f6-4421-806b-02a68e8fde42


What should I do:
-----------------

Un altro parametro indispensabile al funzionamento di gcloud_storage è *"what"* abbreviazione di *"What should I do"* ovvero *"cosa devo fare"*. 

::

 gcloud_storage [-h] -w {detail,send,get,delete,ls,version} -r REPOSITORYNAME -k AUTHKEY [-f FILEKEY] [-l LOCAL_FILE] [-p PUBLIC_NAME] [-d]


Con questo parametro indichiamo a gcloud_storage l'azione che vogliamo intraprendere.
Le opzioni disponibili sono:

Definizione di Risorsa


* send => per inviare un file sul repository.
* datail => per ottenere dettagli relativi ad una risorsa.
* get => per scaricare un file dal repository.
* delete => per eliminare una risorsa dal repository.

* ls => per visualizzare l'elenco delle risorse disponibili sul repository.
* version => per visualizzare la versione di gcloud_storage


Al comando possono essere aggiunte ulteriori informazioni per rendere l'azione più specifica.
Ad esempio:

* -f FILEKEY => per indicare la fileKey della risorsa che si intende scaricare, aggiornare o di cui si vogliono ottenere i dettagli
* -l LOCAL_FILE => per indicare il file locale che si intende inviare
* -p PUBLIC_NAME => per indicare il nome pubblico con cui eventualmente salvare su gCloud la risorsa
* -d => per indicare se la versione corrente di un file e la versione precedente debbano avere md5 diverso oppure no


.. image:: http://storage.gcloud.schema31.it/obj/ffac1141-26f6-4421-806b-02a68e8fde42


Metodo ls
''''''''''''''''

Questo metodo viene usato per ottenere informazioni sulle risorse contenute nel repository di riferimento.

::

 gcloud_storage -r $REPONAME -k $REPOKEY -w ls


Il risultato di questo comando è l'elenco delle risorse contenute nel repository e dei dettagli di ciascuna di esse.

::

 [{u'fileSHA256': u'4a22e51989663379723b4c32f7ce43bb40dcc5a815a3d4a997e9387467b1e98c'
 u'updateTime': u'2015-07-03 14:38:25'
 u'friendlyUrl': u'http://storage.gcloud.schema31.it/obj/51e6b534-56ed-4498-877c-866e71369fd1'
 u'fileVersion': u'1'
 u'fileMimeType': u'application/octet-stream'
 u'fileKey': u'51e6b534-56ed-4498-877c-866e71369fd1'
 u'creationTime': u'2015-07-03 14:38:25'
 u'fileMD5': u'22edda34bb4b56c23026b9250a1e71de'
 u'fileName': u'a.jpg'
 u'fileSize': u'225813'
 u'linkUrl': u'http://storage.gcloud.schema31.it/dispatch/51e6b534-56ed-4498-877c-866e71369fd1'
 u'isDeleted': u'0'}

 {u'fileSHA256': u'4a22e51989663379723b4c32f7ce43bb40dcc5a815a3d4a997e9387467b1e98c'
 u'updateTime': u'2015-07-03 12:50:04'
 u'friendlyUrl': u'http://storage.gcloud.schema31.it/obj/b4c89b34-1b8b-4538-9301-1bc96476c461'
 u'fileVersion': u'2'
 u'fileMimeType': u'application/octet-stream'
 u'fileKey': u'b4c89b34-1b8b-4538-9301-1bc96476c461'
 u'creationTime': u'2015-07-03 12:50:04'
 u'fileMD5': u'22edda34bb4b56c23026b9250a1e71de'
 u'fileName': u'a.jpg'
 u'fileSize': u'225813'
 u'linkUrl': u'http://storage.gcloud.schema31.it/dispatch/b4c89b34-1b8b-4538-9301-1bc96476c461'
 u'isDeleted': u'0'}]



.. image:: http://storage.gcloud.schema31.it/obj/ffac1141-26f6-4421-806b-02a68e8fde42


Metodo send
''''''''''''''''

Per effettuare l'upload di un file direttamente su gCloud usando la riga di comando si utilizza il metodo **send**.


Esistono diversi possibili utilizzi di questo metodo, a seconda se si voglia caricare un nuovo file, una nuova versione di un file esistente o caricare un file impostando un nome pubblico diverso da quello originale.

Per caricare un file su gCloud si usa:

::

 gcloud_storage -r $REPONAME -k $REPOKEY -w send -l a.jpg


Per creare una nuova versione di un file preesistente si usa:

::

 gcloud_storage -r $REPONAME -k $REPOKEY -w send -f 'b4c89b34-1b8b-4538-9301-1bc96476c461' -l a.jpg


In questo caso occorre specificare la fileKey della risorsa che intendiamo aggiornare.
Il file che viene inviato andrà a sostituire il file che possiede la fileKey indicata, diventandone così una nuova versione.

Aggiungendo il comando

::

 gcloud_storage -r $REPONAME -k $REPOKEY -w send -f 'b4c89b34-1b8b-4538-9301-1bc96476c461' -l a.jpg -d


è possibile specificare che l'aggiornamento del file deve avvenire solo ed esclusivamente a patto che l'ultima versione online e quella locale siano diverse.


Nel caso in cui si voglia inviare un file indicando un nome pubblico diverso da quello originale, si può usare il comando:

::

 gcloud_storage -r $REPONAME -k $REPOKEY -w send -l a.jpg -p b.jpg


In questo modo il file sarà salvato su gCloud con il nome pubblico che si è specificato e non con il suo nome originale.



.. image:: http://storage.gcloud.schema31.it/obj/ffac1141-26f6-4421-806b-02a68e8fde42


Metodo detail
''''''''''''''''

Il metodo **detail** consente di ottenere tutte le informazioni del file inviato:

::

 gcloud_storage -r $REPONAME -k $REPOKEY -w detail [-f FILEKEY] [-l LOCAL_FILE] [-p PUBLIC_NAME]


Per ottenere i dettagli del file occorre indicarne, a seconda delle preferenze, la fileKey, il nome del file o il nome pubblico con cui lo si è salvato nel repository.


::

 [{u'fileSHA256': u'4a22e51989663379723b4c32f7ce43bb40dcc5a815a3d4a997e9387467b1e98c'
 u'updateTime': u'2015-07-03 10:43:01'
 u'friendlyUrl': u'http://storage.gcloud.schema31.it/obj/b4c89b34-1b8b-4538-9301-1bc96476c461'
 u'fileVersion': u'1'
 u'fileMimeType': u'application/octet-stream'
 u'fileKey': u'b4c89b34-1b8b-4538-9301-1bc96476c461'
 u'creationTime': u'2015-07-03 10:43:01'
 u'fileMD5': u'22edda34bb4b56c23026b9250a1e71de'
 u'fileName': u'a.jpg'
 u'fileSize': u'225813'
 u'linkUrl': u'http://storage.gcloud.schema31.it/dispatch/b4c89b34-1b8b-4538-9301-1bc96476c461'
 u'isDeleted': u'0'}]


Il risultato di questo metodo è l'elenco di tutte le caratteristiche del file.


.. image:: http://storage.gcloud.schema31.it/obj/ffac1141-26f6-4421-806b-02a68e8fde42


Metodo get
''''''''''''''''

Il metodo **get** viene usato per scaricare un determinato file dal repository.


::

 gcloud_storage -r $REPONAME -k $REPOKEY -w get -f 'b4c89b34-1b8b-4538-9301-1bc96476c461' [-l LOCAL_FILE] [-p PUBLIC_NAME]


In questo caso occorre indicare obbligatoriamente la fileKey della risorsa che si intende scaricare e, a seconda delle preferenze, il nome oppure il nome pubblico.


.. image:: http://storage.gcloud.schema31.it/obj/ffac1141-26f6-4421-806b-02a68e8fde42


Metodo delete
''''''''''''''''

Per cancellare una risorsa contenuta nel repository si può usare il metodo **delete**.

::

 gcloud_storage -r $REPONAME -k $REPOKEY -w delete -f 'b4c89b34-1b8b-4538-9301-1bc96476c461'


Questo metodo richiede che nel comando sia obbligatoriamente indicata del file che si intende eliminare.


.. image:: http://storage.gcloud.schema31.it/obj/ffac1141-26f6-4421-806b-02a68e8fde42


Metodo version
''''''''''''''''

Il metodo **version** consente di ottenere informazioni sulla versione corrente di un file.

::

 gcloud_storage -r $REPONAME -k $REPOKEY -w version [-l LOCAL_FILE] [-p PUBLIC_NAME]


In questo caso occorre indicare obbligatoriamente la fileKey del file di cui si intende conoscere la versione e, in aggiunta a seconda delle preferenze, il nome del file oppure il suo nome pubblico.



  .. image:: http://storage.gcloud.schema31.it/obj/ffac1141-26f6-4421-806b-02a68e8fde42








------------

.. image:: http://storage.gcloud.schema31.it/obj/ffac1141-26f6-4421-806b-02a68e8fde42


Credits
=======


	.. image:: http://storage.gcloud.schema31.it/obj/9bc45749-e211-445f-9519-0fc77d0ef5bb
			:target: http://www.schema31.it/
			:alt: Schema31

Schema31 è una dinamica azienda italiana in rapida crescita specializzata  nella consulenza in analisi di processo, lo sviluppo dei sistemi e l’ingegneria informatica.  

La Società dispone di una speciale combinazione di competenze in ambito Process Analisys/Change Management ed Information/Communication Technology (ICT) che le consente di  assistere e supportare efficacemente Clienti Enterprise (sia pubblici che privati) a governare le proprie attività, e di realizzare per essi procedure e sistemi applicativi etici e sicuri.


.. image:: http://storage.gcloud.schema31.it/obj/ffac1141-26f6-4421-806b-02a68e8fde42


gCloud
------


Il cloud 100% italiano aderente alle normative vigenti e certificato AgID per ospitare la conservazione a norma dei documenti.

**L'unico Cloud 100% italiano**
    gCLoud si caraterizza univocamente per il suo affidamento su tecnologie e infrastrutture totalmente italiane, basate su una localizzazione dei dati specificatamente residente sul comprensorio geografico nazionale.

**Inattacabilità dei dati**
    Il nostro codice a filiera controllata è prodotto e gestito internamente, e garantisce una totale aderenza alle normative vigenti italiane. Questa assoluta certificazione ne garantisce l'inattaccabilità per i tuoi dati.

**Massima interoperabilità**
    L'utilizzo di protocolli standard per la realizzazione del software ne garantisce l'integrazione con tutte le più comuni piattaforme.


.. image:: http://storage.gcloud.schema31.it/obj/ffac1141-26f6-4421-806b-02a68e8fde42





