django - 直接上传到 S3 还是通过 EC2?

标签 django amazon-s3 amazon-ec2 amazon-web-services

我想为 iPhone 应用程序构建一个网络服务。至于文件上传,我想知道标准程序和最具成本效益的解决方案是什么。据我所知,有两种可能:

  • 客户端 > S3:我直接从 iPhone 上传文件到 S3(使用 AWS SDK)
  • 客户端 > EC2 > S3:我将文件上传到我的服务器(运行 Django 的 EC2),然后服务器将文件上传到 S3(详见 post)

  • 我不打算以任何方式修改文件。我只需要告诉数据库添加一个条目。因此,如果我要上传文件 Client > S3,无论如何我都需要连接到服务器才能进行数据库输入。

    It seems好像 EC2 > S3 只要两者在同一地区就不需要任何费用。

    在开始实现文件上传之前,我有兴趣了解一下优缺点。

    最佳答案

    出于可扩展性的原因,我肯定会通过 S3 来完成。确实,S3 和 EC2 之间的数据既快速又便宜,但上传需要长时间运行,不像普通的 Web 请求。因此,您可能会使 EC2 实例上的 NIC 饱和。

    相反,将 GUID 返回给客户端,使用设置为 GUID 的 key 和适当设置的 Content-Type 上传到 S3。然后在上传完成后调用 Web 服务/Ajax 端点以使用 GUID 键创建数据库记录。

    关于django - 直接上传到 S3 还是通过 EC2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9348384/

    相关文章:

    python - 在 Django 中监控博客文章浏览量的最佳方法

    python - 对象没有属性 'get_notification_display'

    sql-server - SQL Server 作业无法识别 AWS CLI 命令

    java - Amazon S3 上传挂起 100%

    jquery 自动完成未定义函数

    Django Rest框架APIView注册路由

    swift - 无法从 AWS S3、Swift 3 下载图像

    amazon-ec2 - 每个 Amazon EC2 实例的最大附加卷数是多少?

    c# - 如何使用 Amazon .NET 库列出所有 EC2 实例?

    amazon-web-services - 如何让自己免于 AWS 费用?