Google Storage
Il y a quelques semaine, j’ai fait une demande d’un accès google Storage, j’ai reçu ce matin le lien d’invitation de ce service. Je vais vous en faire une petite présentation aujourd’hui.
Google Storage for Developpers fournit un espace de stockage illimité et hautement disponible, ainsi qu’une interface RESTFull, ce n’est pas la peine de le comparer avec Dropbox, mais avec le service d’amazon : Amazon S3 (que dropbox utilise).
Organisation
Chaque fichier envoyé sera stocké sur le Cloud Google, c’est à dire sur une multitude de serveurs répartis à travers le monde. Chaque fichier pourra donc être accessible de n’importe, le serveur sera choisit de manière transparente en fonction de son temps de réponse. Les données étant répliquées sur plusieurs serveur, plus besoin de sauvegarde, si un des serveurs tombe, le fichier sera toujours disponible grâce aux autres serveurs.
Comme sur Amazon, des répertoires racines doivent être créés. Appelés Bucket, ces répertoires doivent avoir un nom en minuscule selon le principe d’un alias de nom de domaine. Ce bucket pourra en effet être atteint depuis un alias de l’url de google storage : nom_du_bucket.commondatastorage.googleapis.com .
Chaque bucket peut ensuite contenir :
- des fichiers
- des dossiers
- des buckets
Une gestion des ACL (Access Control List ou encore gestion des droits) fait également partie intégrante du système de fichiers, il existe 3 droits pouvant être appliqués à des domaines mails ou encore des comptes google spécifiés explicitement.
- READ : droit de lecture uniquement
- WRITE : droit de lecture et d’écriture
- FULLCONTROL : ce droit permet d’attribuer tout les droits à un fichier, y compris les droits de modification des ACL
Une fonctionnalité interessante est la possibilité de reprendre un envoi ou un téléchargement, imaginons qu’un envoi d’un très gros fichier de plusieurs centaines de Mo ai été interrompu par une coupure de connection, il est possible de reprendre l’upload exactement où la coupure c’est produite.
Par contre, c’est dommage (mais en même temps très dur à gérer), mais un fichier sur le serveur ne peut être modifié. Ainsi, lors de la modification d’un fichier, ce fichier est supprimé, puis renvoyé. Il est considéré comme un fichier totalement différent du premier, et sa date de « modification » devient donc sa date de création, le libéllé dans l’explorateur est « Last upload ».
La compression du flux est également gérée, en envoyant un fichier, il est possible d’utiliser la compression gZip, le temps de transfert sera réduit, la bande passante (BP facturée ^^) sera également réduite.
Lors de l’envoi d’un fichier, ce fichier est considéré comme inexistant, et n’apparait donc pas dans notre bucket. Dès que le serveur a entièrement reçu le fichier, il apparait instantanément, et est immédiatement disponible. De la même façon, une fois supprimé, il n’apparait plus et renvoi une 404 immédiatement.
Google storage utilise le protocole HTTPS pour l’échange de fichier, nos données sont donc sécurisées (relativement bien) pendant toute la durée du transit.
Interface Web
Mieux vaut une petite démonstration avec quelques screenshot que des explications imbuvables :
Ligne de commande
Là une partie un tout petit peu plus technique… Google fournit un utilitaire développé en Python qui est un client RESTFull pour Google Storage.
L’avantage par rapport à l’interface Web est que nous avons accès à la quasi-totalité des fonctions REST, notamment la gestion des ACL que nous n’avons pas encore sur l’interface Web.
Cet utilitaire s’appelle GSUtil et son utilisation est plutôt simple :
Pour reprendre le même exemple que ci-dessus :
Création d’un bucket : gsutil mb gs://jeremy
Création d’un dossier : gsutil mb gs://jeremy/test
Envoi d’un fichier : gsutil cp Lorem\ Ipsum.txt gs://jeremy/
Liste du dossier : gsutil ls -l gs://jeremy
Affichage du fichier : gsutil cat gs://jeremy/Lorem\ Ipsum.txt
Suppression de fichier : gsutil rm gs://jeremy/Lorem\ Ipsum.txt
Gestion des acls :
- Tout d’abord récupérer la configuration acl existante : gsutil getacl gs://jeremy/Lorem\ Ipsum.txt > acl.txt
- Ensuite éditer ce fichier en fonction des nouvelles ACL
- Puis renvoyer le fichier : gsutil setacl acl.txt gs://jeremy/Lorem\ Ipsum.txt
Prix
Je vous ai dit en début d’article que l’espace de stockage était illimité ? oui, mais pas sans coût.
Voici le tableau de prix donné par google, la facturation se fait en fonction de la taille des données transitants entre l’utilisateur et les serveurs, et de l’espace de stockage utilisé.
- Utilisation d’espace de stockage : $0.17/Go/mois
- Réseau
- Envoi des données
- $0.10/Go
- Téléchargement des données
- $0.15/Go pour l’Amerique, l’Europe, le Moyen-Orient et l’Afrique
- $0.30/Go pour l’Asie-Pacifique
- Envoi des données
- Requêtes
- PUT, POST, LIST—$0.01 pour 1,000 requêtes
- GET, HEAD—$0.01 pour 10,000 requêtes