2017-09-18 2 views
3

Je travaille sur une application Web qui aura des fonctionnalités pour télécharger, stocker des fichiers, récupérer et afficher des fichiers. Je prévois de déployer l'application dans openshift.Stockage et extraction de fichiers dans une application Web openshift

Veuillez indiquer comment stocker et récupérer les fichiers. Les fichiers seront-ils stockés dans DB (MySQL) ou dans le système de fichiers en fonction des performances de l'application?

+0

Les téléchargements seraient stockés sur votre serveur dans un dossier spécifique. En ce qui concerne l'affichage, vous pointez simplement vers ce dossier. –

+0

dépend en fin de compte de la nature des données. Mais si des fichiers arbitraires, utilisez le système de fichiers comme déjà noté par @NoelMurphy. N'oubliez pas que vous devrez effectuer une revendication de volume persistante pour obtenir un volume persistant, puis le monter dans le conteneur d'application. Ecrivez les fichiers sur le volume persistant. Si vous n'écrivez pas sur un volume persistant, tous vos fichiers seront perdus lors d'un redémarrage car le système de fichiers est éphémère. –

+0

Les types de fichiers seront principalement doc, pdf et Excel. Je prévois de réclamer un volume persistant supplémentaire en fonction de la taille du fichier. Avez-vous des références sur la façon d'accéder au système de fichiers openshift en utilisant Java pour stocker ou récupérer les données? – Arnab

Répondre

1

Vos objectifs:

  • Vous devez stocker des fichiers, qui sont un type d'objets persistants;
  • Vous devez le faire dans un environnement OpenShift.

Donc, vous devriez envisager d'utiliser volumes persistants (PV), qui viennent avec Kubernetes, le plan de gestion sous-jacente pour les conteneurs utilisés par OpenShift.

Le sous-système PV fournit une API qui résume les détails de la manière dont le stockage est fourni et comment il est consommé. Vous pouvez donc choisir l'un des nombreux backends répondant le mieux à vos besoins. Par exemple, vous pouvez choisir des volumes persistants basés sur GlusterFS pour avoir une haute disponibilité. Vous pouvez également choisir iSCSI, NFS, etc. en fonction de l'infrastructure que vous possédez déjà.

Voir le guide OpenShift persistent volumes.

Vous pouvez également utiliser la base de données pour stocker les chemins d'accès à vos fichiers sur vos volumes persistants. L'écriture dans ces fichiers avec Java est aussi simple que l'utilisation du package standard java.io. Mais l'utilisation d'une base de données pour suivre les fichiers sur des volumes dynamiques distants est une sorte de réinvention d'un système de stockage d'objets. Ainsi, vous pouvez également consulter le sous-système Swift SAAS (Storage as a Service) de la communauté OpenStack. Il est disponible à partir d'une API JSON/REST, il serait donc très facile d'y accéder à partir de votre environnement JEE. Il est certainement plus facile d'intégrer les PV que Swift (Swift a besoin au moins de KeyStone pour pouvoir offrir des services, donc il y a deux sous-systèmes OpenStack à déployer si vous voulez utiliser SAAS avec l'API REST/JSON).