0

我在 Amazon EC2 上安装了 Tomcat7 服务器。我的一个 Servlet 收到一个“文件”作为多部分帖子。我需要将此文件存储在目录结构中,稍后该文件将由另一个 servlet 检索并发送到客户端并从 Amazon Web Services 中删除。

我的问题 我应该在哪里以及如何存储这些文件以及我应该如何使用 Servlet 创建目录结构。

我在看

  1. 以最快的速度访问文件。
  2. 只要不发送给客户端,就需要存储文件。
4

2 回答 2

2

你真的有两个选择:

1-将内容存储在您的本地实例存储中(对于您的实例存储,我强烈推荐 EBS 而不是实例存储(请参阅此问题了解背景信息)。存储和检索文件会更快,并且您可以随时重新在需要时扩展您的实例。

2-将您的文件存储在 S3。存储/检索时间会更慢,但您可以获得“自动”可扩展性、加密、增强的耐用性和可用性(无需付出努力)以及通过直接链接公开文件的可能性,而无需通过您的Web应用程序。除此之外,由于文件不在特定的 EC2 实例中,您可以通过添加新实例来扩展您的 Web 应用程序,同时将文件集中在 S3 上。

我的建议是 S3,即使您在交付文件时可能会损失一些速度。设置两个环境并进行一些测试。它可能会帮助您做出决定。

希望能帮助到你。

于 2012-07-14T13:19:35.267 回答
1

+1 @Viccari 的回答。它很好地涵盖了选项。

但是,由于您的要求,我不同意使用 S3 的结论,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 之上。

于 2012-07-16T17:19:01.787 回答