【问题标题】:Should I create a separate file upload server besides main graphql server? [closed]我应该在主 graphql 服务器之外创建一个单独的文件上传服务器吗? [关闭]
【发布时间】:2021-12-08 13:50:02
【问题描述】:

我正在使用 React Native 创建一个移动应用程序,该应用程序将严重依赖以图像和视频形式上传的文件。目前我的 GraphQL 服务器正在处理所有的数据库交互,我现在想添加上传图片的功能(现在只有个人资料图片,以后的视频)。这些文件将存储在云对象存储中。
在移动应用程序中使用apollo-upload-client 和在我的Apollo 服务器上使用graphql-upload 来处理文件的上传会很容易。但我不确定我是否应该创建一个单独的服务器,它只处理与文件的交互,以便我的主服务器只需要处理数据库作业。文件上传也会给主 GraphQL 服务器增加大量负载,因为大多数应用程序都依赖于它,所以它需要超级快速和响应。

我很想听听关于这个主题的其他意见和提示,以及是否值得创建一个单独的服务器来与文件交互。
或者甚至研究 Elixir 或 Python 等不同的语言来提高性能,因为我们还需要处理和压缩视频和图像以减小它们的大小。

【问题讨论】:

    标签: file-upload graphql apollo-server apollo-upload-client


    【解决方案1】:

    IMO,如果您的最终目的地是基于云的存储,那么如果您直接上传到云端,您会获得更好的收益(并且支付更少的费用)。我通常推荐的是一个 3 步流程:

    • 创建签名上传 URL(或签名上传表单)的突变
    • 客户端直接上传到云端(带 TTL 的临时位置)
    • 突变以处理包含上传元数据的表单(处理并移动到最终位置)

    当您开始处理多个上传并在用户填写表单的其余部分时弄清楚如何异步处理它们时,这尤其有趣。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-20
      • 2011-06-14
      • 2012-07-12
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      相关资源
      最近更新 更多