我在Amazon EC2上安装了Tomcat7服务器。我的一个Servlet收到一个“文件”作为多部分帖子。我需要将这些文件存储在目录结构中,稍后该文件将由另一个servlet重新发送并发送到客户端并从Amazon Web Services中删除。
我的问题 我应该在哪里以及如何存储这些文件,以及如何使用Servlet创建目录结构。
我在看
答案 0 :(得分:2)
你真的有两个选择:
1 - 将内容存储在本地实例存储中(对于您的实例存储,我强烈推荐EBS over instance store(请参阅this question了解背景信息)。存储和检索文件会更快,并且您可以在需要时随时重新调整实例。
2 - 将文件存储在S3。存储/检索时间将会变慢,但您可以获得“自动”可扩展性,加密,增强的持久性和可用性(无需付出努力)以及通过直接链接公开提供文件的可能性,而无需通过您的Web应用程序。除此之外,由于文件不在特定的EC2实例中,您可以通过添加新实例来扩展Web应用程序,同时将文件集中在S3上。
我的建议是S3,即使您在传送文件时可能会失去一些速度。设置两个环境并进行一些测试。它可能会帮助你做出决定。
希望它有所帮助。
答案 1 :(得分:1)
+1 @ Viccari的回答。它很好地涵盖了选项。
但是,由于您的要求Quickest possible access to the file
和Store of the file is need as long as it is not send to the client.
S3明显慢于基于EBS的存储。由于您要为单个客户端存储给定文件,直到检索一次,因此您不需要S3提供的可伸缩性。实际上,在S3中存储的数据复制到其他可用区之前可能需要相当多的时间。
如果您要存储的数据将多次提供,则S3将是更合理的选择(只要其性能足以满足您的需求)。对于该用例(对于您的用例,不是),我还会将Cloud Front分层放在S3之上。