将对方透过 API 传来的照片档传到另一台服务器?

发布于 2022-09-11 19:26:58 字数 550 浏览 35 评论 0

假设目前有三台服务器(以下均为纯 backend ,无 frontend)

A是测试服务器,域名为 dev.123.com
B是正式服务器,域名为 prod.123.com
C是专门放image服务器,域名为 images.123.com

目的是希望将对方丢过来的照片丢到 image 服务器去,且回传正确 URL 为 images.123.com/....

现在我想到有两个可能的传输方式
第一个:
接收照片的 API 程序会在 A和B(测试和正式,环境根据域名判断)
所以当对方透过(不同环境的) API打来时,我能够将他附带的照片丢到 image服务器 ?且在AB服务器时就已经决定位置及照片名称,才可回传正确的URL给对方

第二个:
将接收照片的API程序写在 C,请对方打 C的API,再看用什么取得正确照片URL?

请问大神有无其他方式建议?谢谢!


我發現這樣會導致我的 AB運作速度呢
似乎是丟到 C的時間太長,取自於圖片的大小

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

甲如呢乙后呢 2022-09-18 19:26:58

不知道你纠结什么,这个其实不难,只是你将以前放在一台服务器实现的功能分离了出来,A 上传图片到 C,C处理之后会将图片的URL地址返回给A,A拿到这个地址保存起来即可,另,C需要提供一个对外上传图片的接口,不过为了安全性,你需要对C提供的接口加密或者做IP白名单,只有合法的请求才可以上传.

难以启齿的温柔 2022-09-18 19:26:58

a/b -> c
不管你图片是咋个来的,既然你能拿到,你就能传出去,你图片最终是要放到资源服务器c的。

a/b 收到图片以后做相应的处理,然后将图片发送到c,从c的返回得到对应的图片地址,然后a /b进行存库或者其他操作。

半步萧音过轻尘 2022-09-18 19:26:58
  1. 既然有图片服务器C,当然直传C,速度快不说,自私的考虑,避免了ab转一手,这其中少了不稳定的因素,不知不觉避免了很多坑!这没什么好犹豫的。
  2. 图片服务器C,负责接收、处理、存储、提供访问等所有工作。这样性能也能充分利用。
  3. 客户端直传C后,简单一点就是, 上传成功后由客户端把C返回给客户端的图片ID和路径再发送给A或者B,虽然两次交互,但是相对于多次传送的文件体积来说,微乎其微.
  4. 客户端直传C后,复杂一点但可靠的办法是,最好能加一个推送机制,把上传成功的结果同时推送到A或者B,AB处理反馈后,C再将最终结果返回给客户端。

还有个办法是,配置服务器间的文件自动同步,也相当于AB转发一次。但是比你用程序实时处理更可靠,更简单。可以实时同步,或者定时同步。但是占流量,建议定时,放到夜里自动执行。执行同步时,如有必要可以同时更新数据库里的图片信息。以后就可以直接访问图片服务器获取图片。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文