• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yodhcn
V2EX  ›  程序员

一般实际开发中,后端 API 服务器 & 文件服务器是分开的吗?

  •  
  •   yodhcn ·
    yodhcn · Mar 11, 2023 · 4012 views
    This topic created in 1335 days ago, the information mentioned may be changed or developed.

    一般实际开发中,后端 API 服务器 & 文件服务器是分开的吗?

    目前主流的 Java 后端技术栈还是同步的 Spring MVC ,用来传输 Video Stream 是不是不太合适?

    Supplement 1  ·  Mar 12, 2023
    感谢各位老哥的回复!我大概了解了为什么后端 API 服务器 & 文件服务器通常需要分开。

    现在我有一个设想的方案:
    1. 当已授权用户需要请求某个目录中的文件时,需要先请求 Api 服务 "http://xxx.api.com/api/download_token?dir=DIRxxxxx" 拿到 token="TOKENxxxxx"
    2. 用户携带 token 访问文件服务 "http://xxx.file.com/file/DIRxxxxx/music.mp3?token=TOKENxxxxx",可以在该 token 过期前访问 "/DIRxxxxx" 下的所有文件

    请问需要实现至少 "下载、上传、token 鉴权" 这些功能的自建文件服务器有哪些选择?
    PS: 不想使用对象存储,因为使用对象存储的文件在操作系统中不能直接读取。
    希望使用原生文件系统实现,因为方便在操作系统的文件资源管理器中管理文件。
    15 replies  •  2023-03-12 12:26:31 +08:00
    pigspy
    pigspy
    Mar 11, 2023❤️1
    1
    文件服务器和用于提供 API 的服务器肯定会分开部署
    因为在网站上买的云主机的实例规格会不一样
    ktqFDx9m2Bvfq3y4
    ktqFDx9m2Bvfq3y4
    Mar 11, 2023❤️1
    2
    你可以用 API 来上传到云存储比如 OSS ,但下载一般直接用 CDN 了。
    Mystery0
    Mystery0
    Mar 11, 2023 via Android❤️1
    3
    短期临时的话随意,长期、想要稳定的话,都会分开的,为的是让流的请求不挤占正常 api 请求的带宽和连接数
    cpstar
    cpstar
    Mar 11, 2023❤️1
    4
    video stream 实际上不就是文件 I/O<=>网络 I/O ,所以就是你是否需要用 spring 框架来搞这个,还是交给一个 native 一点的 httpd 搞,还是交给谁。
    zoharSoul
    zoharSoul
    Mar 11, 2023❤️1
    5
    是的
    wheat0r
    wheat0r
    Mar 11, 2023❤️1
    6
    对于政府采购项目,肯定是分开,能多卖不少钱😂
    edis0n0
    edis0n0
    Mar 11, 2023❤️1
    7
    我们是所有东西全混在一台*独服上
    mzDV4TUeHyesLbUQ
    mzDV4TUeHyesLbUQ
    Mar 11, 2023❤️1
    8
    @edis0n0 求生欲很强啊

    @yodhcn 我们之前 API 服务和文件服务是在一起的,直到后来附件太多,服务器没多余的硬盘位...
    kingjpa
    kingjpa
    Mar 11, 2023❤️1
    9
    必然是分开的,主要是安全隐患。
    lujiaosama
    lujiaosama
    Mar 12, 2023❤️1
    10
    分开, 服务+COS/OSS+VOD.
    singerll
    singerll
    Mar 12, 2023❤️1
    11
    有共享存储,可以选择不分开。
    没共享存储,肯定要分开,不然双节点没法做。
    devliu1
    devliu1
    Mar 12, 2023❤️1
    12
    传 oss ,应用服务器保持无状态
    gtx990
    gtx990
    Mar 12, 2023 via Android❤️1
    13
    s3 是存储界最伟大的发明
    xuanbg
    xuanbg
    Mar 12, 2023❤️1
    14
    一般用的少的可以选择云厂商的 OSS 服务而不是自建文件服务。
    kevinlia0
    kevinlia0
    Mar 12, 2023 via Android❤️1
    15
    分开的。
    1.安全问题考虑
    2.性能问题考虑。不分开,在读取资源文件会使用 API 服务器的资源和网络带宽,读取资源文件 不应影响 API 的主服务
    3.看实际而定吧,小项目用户访问不高,两者不分开放一起的性价比高
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1992 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 16:28 · PVG 00:28 · LAX 08:28 · JFK 11:28
    ♥ Do have faith in what you're doing.