Système de Hierarchical Storage Management (HSM) avec un bucket Amazon S3


Wed 01 February 2017 Par Dave Hintemeyer

On nous demande souvent comment Nuxeo Platform gère le hierarchical storage management (HSM). C'est un sujet primordial pour nos clients car c'est une bonne façon de réduire les coûts de stockage des entreprises. Dans l'article d'aujourd'hui, je vais vous montrer comment configurer un espace de travail Nuxeo spécifique permettant de sauvegarder tous les fichiers binaires uploadés dans un bucket Amazon S3 alors que tous les autres espaces de travail sauvegardent leur contenu sur le disque local (configuration par défaut). Jetons un œil aux différentes étapes.

Téléchargement du package Amazon S3 Storage

Nuxeo Marketplace

Commencez par vous rendre sur la Nuxeo Marketplace pour télécharger et installer le package Amazon S3 Storage (SNAPSHOT).

Spécification de vos paramètres Amazon S3

Nuxeo Conf

Il est nécessaire d'ajouter au fichier nuxeo.conf des lignes supplémentaires concernant AWS. Remplacez le nom du bucket AWS, la clé d'accès AWS et le secret AWS par vos valeurs. Vous trouverez ici plus d'informations sur la configuration Nuxeo S3. Si vous avez besoin d'aide pour configurer AWS, veuillez consulter la documentation Amazon.

Configurations nécessaires de Studio

Document Schema

Nous avons besoin d'un nouveau schéma pour stocker un indicateur définissant si le fichier binaire doit être enregistré dans S3 ou non. Pour cet exemple, j'ai créé un schéma "s3" avec le préfixe "amazon". Le schéma contient un champ booléen nommé "syncWithS3" avec la valeur par défaut FALSE.

Scripting Editor

Nous avons ensuite besoin d'un script d'automatisation qui définit le champ "amazon:syncWithS3" = TRUE. Ce champ est utilisé par le gestionnaire de fichiers binaires S3 dont je vais parler juste après.

Le script réalise les actions suivantes (en pseudo code) :

  1. Accepter un document
  2. Obtenir le document parent du document uploadé.
  3. Obtenir le titre de l'espace de travail du parent. Dans ce cas, nous nous intéressons uniquement à l'espace de travail nommé "Amazon s3 Archive". L'upload d'un fichier dans cet espace de travail S3 enverra les fichiers binaires vers S3.
  4. Si le titre de l'espace de travail est égal à "Amazon s3 Archive", définir amazon:syncWithS3 = TRUE.
  5. Renvoyer le document pour pouvoir le sauvegarder dans S3 ou sur le disque local, en fonction du résultat de l'étape 4.

Event Handler

Event Handler Execution

Nous avons maintenant besoin d'un nouveau gestionnaire d'événements. Notre gestionnaire cherchera les événements "sur le point d'être créés" pour tous les documents de type "File". Le gestionnaire d'événements exécutera le script d'automatisation que vous avez créé à l'étape précédente.

Features

Enfin, nous avons besoin d'une nouvelle extension XML. C'est grâce à elle que tout est possible. Nous configurons deux blob providers séparés : un pour AWS et un autre pour le disque local (localEncrypted). Ensuite, nous ajoutons un paramètre au blob provider d'AWS qui sera analysé pour déterminer si le champ "amazon:syncWithS3" du document est égal à TRUE. Si c'est le cas, le fichier binaire est sauvegardé sur AWS, sinon, sur le disque local.

Archive

L'objectif de cet article était de montrer à quel point il est facile de diriger le stockage de fichiers binaires vers Amazon S3 pour un espace de travail spécifique. Et ce n'est que l'une des multiples possibilités proposées par Nuxeo Platform ! N'hésitez pas à consulter notre centre de documentation pour plus d'informations.


Tagged: AWS, Nuxeo Platform