V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sxw11
V2EX  ›  程序员

咨询一个上传下载 api 问题

  •  
  •   sxw11 · 2019-03-20 10:27:02 +08:00 · 2149 次点击
    这是一个创建于 2068 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景:目前有一个上传下载的 api,客户端请求 api,后端从阿里云 OSS 将响应文件下载,然后返回 stream 给客户端

    服务器环境:阿里云 ECS(2 核 4G 1Mbps)

    客户端环境: 网络上下行大概都是 1M/s

    问题:无并发情况下载 4M 图片大概 30 秒左右,20 个并发 几分钟。

    先我跟一下大家,是这种方案有问题还是服务器带宽太小的导致的,业界通用一般用什么方案来搞定这种上传下载,如果不行可能还是得搞成客户端用 OSS SDK 来下载了。

    14 条回复    2019-03-20 15:30:24 +08:00
    zhengxiaowai
        1
    zhengxiaowai  
       2019-03-20 10:29:56 +08:00   ❤️ 1
    本来就是从客户端走的,我下载一个 4G 文件,还不把内存打爆了?
    Sapp
        2
    Sapp  
       2019-03-20 10:33:44 +08:00   ❤️ 1
    客户端接入 sdk 啊... 怎么能走后端,高并发和大文件传起来你受得了?
    RyanOne
        3
    RyanOne  
       2019-03-20 10:34:13 +08:00   ❤️ 2
    RyanOne
        4
    RyanOne  
       2019-03-20 10:35:26 +08:00
    OSS 只需要购买存储空间和下行流量包即可实现降低成本(舍不得带宽的话)
    python35
        5
    python35  
       2019-03-20 10:39:42 +08:00   ❤️ 1
    1Mbps ==> 服务器的峰值带宽 128KB/s
    服务器端从 OSS 下文件吐给客户端,OSS 的好处不就显示不出来了。
    建议 OSS 设置私有读写,服务器生成一个带 token 的 oss 下载链接,token 的有效时间定个 10 分钟左右,把链接返回客户端,客户端用这个链接直接下文件
    sxw11
        6
    sxw11  
    OP
       2019-03-20 10:49:26 +08:00
    @zhengxiaowai @Sapp
    刚开始是通过 SDK 来搞这些的,后来因为考虑了权限控制问题,流量问题,还有就是我们这个应用一般没有多大并发,顶多 30 左右,上传的文件单个大小 4M 左右,所以想尝试一下这个方案
    @RyanOne 谢谢,我觉得这种可行
    @python35 嗯嗯 如果我们现在这种方案搞不定,可能就只能通过 STS 授权来搞定了
    wccc
        7
    wccc  
       2019-03-20 10:50:23 +08:00   ❤️ 1
    客户端直接下载 鉴权
    domty
        8
    domty  
       2019-03-20 10:51:59 +08:00
    阿里云的 ecs 下载阿里云的 oss 的资源可以走阿里云内网
    domty
        9
    domty  
       2019-03-20 10:55:30 +08:00
    选三方的对象存储,目的就是为了减少存储和带宽的压力吧。
    你这样走三方的上传下载,还不如自己建个文件服务器来的省事。
    至于资源防盗问题,可以考虑对象存储提供的防盗链服务。
    wusatosi
        10
    wusatosi  
       2019-03-20 11:01:12 +08:00
    直接把 OSS 的访问权限交给用户不就好了,去看看阿里云的 STS......
    gz911122
        11
    gz911122  
       2019-03-20 11:02:00 +08:00
    不需要 sdk
    上传 服务端下发 token 给客户端,客户端自行上传后将 url 给服务端即可
    下载 客户端自行通过 url 下载
    wunonglin
        12
    wunonglin  
       2019-03-20 11:02:16 +08:00
    有意思么这样?
    lawler
        13
    lawler  
       2019-03-20 11:13:47 +08:00
    只是图片的话,0 成本图床分发不 ok 吗?
    wongguobin
        14
    wongguobin  
       2019-03-20 15:30:24 +08:00
    阿里云 OSS 直传了解一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2896 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:50 · PVG 10:50 · LAX 18:50 · JFK 21:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.