异步图片上传和触发graphql订阅

问题描述

我有一个困境,希望这里有人可以帮助我。

所以在我的应用中,我有一个新闻提要。用户可以添加具有图像的新新闻(只是来自外部网站的图像的 url)。困境在于如何将该图像上传到 s3。因此,目前从我的网络服务器(nodejs)上传该图像基本上是向该图像 url 发出请求,从正文中获取图像并将其上传到 s3。这在大多数情况下都能正常工作。

问题是有时图片网址(来自外部网站)需要很长时间才能检索(有时超过 1 秒)然后上传。

因为我有能力通知我的 apollo graphql 订阅者(对于我刚刚创建的提要上的新新闻)已经发生了更新。这个想法是使图像的上传异步,然后在响应通过时触发订阅。只需传入上传的图片,即可在 Feed 中更新。

我有 3 个选项,我想请教您的意见,以了解哪个是最佳性能虎钳:

  • 只需调用名为“uploadToS3”的方法(该方法调用 aws sdk 并传递图像 blob)即可上传图像,并在 promise 解析回调中通知订阅者
  • 将图像的上传放在 nodejs 工作线程中,并让它在通过“uploadToS3”方法上传图像后通知订阅者
  • 创建一个 AWS SQS 队列,它将触发一个 lambda,该队列将从外部 url 上传图像。但是我不确定如何从 lambda 获得响应到我的网络服务器,以便我可以通知订阅者?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...