2012-07-13 5 views
0

J'ai installé un serveur Tomcat7 sur Amazon EC2. Une de mes servlets reçoit un "fichier" en tant que poste en plusieurs parties. J'ai besoin de stocker ces fichiers dans une structure de répertoire et plus tard, le fichier sera récupéré par une autre servlet et envoyé à un client et supprimé à partir des Amazon Web Services.Recevoir, stocker, transmettre et supprimer un "fichier" à l'aide d'Amazon Webservices

Ma question Où et comment dois-je stocker ces fichiers et comment créer une structure de répertoires à l'aide des servlets.

Je cherche à

  1. accès possible au Quickest fichier.
  2. Le stockage du fichier est nécessaire tant qu'il n'est pas envoyé au client.
+0

Avez-vous l'intention de conserver beaucoup de fichiers la plupart du temps? Par exemple. Combien de Mo, Go de fichiers prévoyez-vous que votre serveur stockera à un moment donné? – Viccari

+0

@Viccari Cela dépend du nombre d'utilisateurs et je n'ai pas d'estimations à ce stade. Pour commencer, il sera petit, mais au cours de la période de temps, il peut se développer. –

Répondre

2

Vous avez vraiment deux options:

1 magasin le contenu de votre stockage d'instance locale (Et pour votre stockage d'instance, je recommande fortement EBS sur magasin d'instance (voir this question pour l'arrière-plan), il. être plus rapide pour stocker et récupérer vos fichiers, et vous pouvez toujours redimensionner votre instance en cas de besoin

2-Stockez vos fichiers à S3, les temps de stockage/récupération seront plus lents, mais vous aurez une scalabilité "automagique", cryptage , durabilité et disponibilité accrues (sans effort) et possibilité de rendre les fichiers accessibles au public, avec des liens directs, hout le besoin de passer par votre application web. Autre que cela, puisque les fichiers ne sont pas dans une instance EC2 spécifique, vous pouvez mettre à l'échelle votre application Web en ajoutant de nouvelles instances tout en gardant les fichiers centralisés sur S3.

Ma recommandation serait S3, même si vous pourriez perdre de la vitesse en livrant des fichiers. Mettre en place les deux environnements et avoir des tests. Cela peut vous aider à décider.

Espérons que ça aide.

1

+1 pour la réponse de @ Viccari. Il couvre bien les options.

Cependant je ne partage pas la conclusion à utiliser S3 en raison de vos besoins Quickest possible access to the file et Store of the file is need as long as it is not send to the client.

S3 est considérablement plus lent que EBS stockage basé. Puisque vous stockez un fichier donné pour un seul client jusqu'à ce qu'il soit récupéré une fois, vous n'avez pas besoin de l'évolutivité que S3 fournirait. En fait, cela peut prendre un peu avant que les données stockées dans S3 ne soient répliquées vers d'autres zones de disponibilité. Si les données que vous étiez en train de stocker allaient être servies plusieurs fois, S3 serait un choix plus raisonnable (à condition que ses performances soient adaptées à vos besoins). Pour ce cas d'utilisation (pas pour votre cas d'utilisation), je voudrais aussi superposer Cloud Front sur S3.

+0

Je suis d'accord avec vous S3 n'est pas une bonne option pour mon cas. Je regarde EBS à la place. La vitesse de transmission des fichiers est très importante pour moi. –

Questions connexes