【问题标题】:Receive, Store, pass and delete a “file” using Amazon Webservices使用 Amazon Webservices 接收、存储、传递和删除“文件”
【发布时间】:2012-07-17 01:19:01
【问题描述】:

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

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

我在看

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

【问题讨论】:

  • 您是否打算经常保留大量文件?例如。您预计您的服务器在给定时间点存储多少 MB、GB 的文件?
  • @Viccari 这取决于用户数量,我目前没有估计。一开始它会很小,但随着时间的推移它可能会增长。

标签: amazon-s3 amazon-ec2 amazon-web-services amazon-ebs


【解决方案1】:

你真的有两个选择:

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

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

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

希望对你有帮助。

【讨论】:

    【解决方案2】:

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

    但我不同意使用 S3 的结论,因为您的要求 Quickest possible access to the fileStore of the file is need as long as it is not send to the client.

    S3 明显慢于基于 EBS 的存储。由于您要为单个客户端存储给定文件,直到检索一次,您不需要 S3 提供的可伸缩性。事实上,将存储在 S3 中的数据复制到其他可用区可能需要相当长的时间。

    如果您存储的数据将被多次提供服务,那么 S3 将是一个更合理的选择(只要它的性能足以满足您的需要)。对于那个用例(不是你的用例),我还将Cloud Front 放在 S3 之上。

    【讨论】:

    • 我同意你的观点 S3 对我来说不是一个好的选择。我正在寻找EBS。文件传输的速度对我来说非常重要。
    猜你喜欢
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 2010-09-06
    • 2018-04-12
    • 2017-03-24
    相关资源
    最近更新 更多