V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Foxkeh
V2EX  ›  问与答

图片上传后服务端压缩 or 客户端压缩后再上传

  •  2
     
  •   Foxkeh · 2021-04-09 10:42:52 +08:00 · 3405 次点击
    这是一个创建于 1329 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景:

    服务端限制上传大小 2M,但手机拍照上传证件很容易就超了。
    产品经理提出来要在服务端做压缩,我说服务器性能很弱而且很贵,服务器性能甚至连现在主流 2 个手机都比不上,建议在客户端做。
    为了寻找数据支撑,搜了下 Geekbench 跑分,结果给我惊呆了,这服务器已经连现在连现在一个主流手机都赶不上了。

    跑分

    跑分 @Geekbench 单核 多核
    本 ECS(双核 Xeon Gold 6149) 894 2032
    iPhone X(A11-2017) 922 2088
    小米 Mix2S(骁龙 845-2018) 518 2092
    iPhone 12 Pro Max(A14-2020) 1206 4243
    小米 11 Ultra(骁龙 888-2020) 1123 3700

    大家的选择是上传后服务端压缩还是客户端压缩后再上传呢?

    35 条回复    2021-04-10 00:28:39 +08:00
    neverfall
        1
    neverfall  
       2021-04-09 10:43:48 +08:00
    根据需要上传
    neverfall
        2
    neverfall  
       2021-04-09 10:44:36 +08:00
    图片等多媒体服务 使用三方云服务,应该比自己的机器便宜,上传下载非常占用带宽
    xmumiffy
        3
    xmumiffy  
       2021-04-09 10:46:45 +08:00 via Android   ❤️ 1
    用户:我今天用你们 app 拍了几张照片,流量用了 1 个多 G,你有什么头绪么?
    woshipanghu
        4
    woshipanghu  
       2021-04-09 10:52:12 +08:00   ❤️ 1
    原图直接上传到 oss 上面 不走自己的服务器 不占用服务器的带宽
    然后用 oss 的自带的压缩参数展示图片
    qiayue
        5
    qiayue  
       2021-04-09 10:55:51 +08:00
    4#是最常用的做法
    cmdOptionKana
        6
    cmdOptionKana  
       2021-04-09 10:56:10 +08:00 via Android
    在客户端压缩,节约带宽,节约用户的流量等等都是优点,未见明显缺点。
    misaka19000
        7
    misaka19000  
       2021-04-09 11:29:28 +08:00
    客户端传 OSS,不走服务端
    JensenQian
        8
    JensenQian  
       2021-04-09 11:34:25 +08:00 via Android   ❤️ 1
    NXzCH8fP20468ML5
        9
    NXzCH8fP20468ML5  
       2021-04-09 11:39:00 +08:00 via Android
    Geekbench 就是过来搞笑的,也就测测爆发性能,真的重负载大部分 arm 分分钟被 x86 教做 cpu
    leonme
        10
    leonme  
       2021-04-09 11:41:18 +08:00 via iPhone
    @xxfye m1 打脸吗?
    lagoon
        11
    lagoon  
       2021-04-09 11:42:47 +08:00
    作为客户端开发,这种一般我们都是客户端压缩后上传。

    这年头的相机,一张照片动不动 3M,甚至更大。这么高清的照片传上去干嘛啊。
    jdhao
        12
    jdhao  
       2021-04-09 11:43:39 +08:00 via Android
    客户端压缩吧,省流量,并且压缩以后传输速度也快啊,别压缩的太离谱就行了
    kokutou
        13
    kokutou  
       2021-04-09 11:51:15 +08:00
    相机一张照片几 m 十几 m
    直接传???
    lewinlan
        14
    lewinlan  
       2021-04-09 11:56:55 +08:00 via Android
    啊这,肯定客户端压缩啊,这还需要问吗
    免费的分布式计算都不用?
    letitbesqzr
        15
    letitbesqzr  
       2021-04-09 12:04:18 +08:00
    😓 难道不都是客户端压缩?现在一张照片都要接近 10m 了,有些场景上传 9 张的,都要接近 100m 了...
    NXzCH8fP20468ML5
        16
    NXzCH8fP20468ML5  
       2021-04-09 12:16:09 +08:00 via Android
    @leonme 不打脸。
    M1 作为桌面级 Soc,已经比那些手机上面的 Soc 好不少了,但重负载下还是不如 X86 。
    我队友试过用 M1 来跑 5000 张图像处理,不如 5800U 。
    securityCoding
        17
    securityCoding  
       2021-04-09 12:19:09 +08:00
    服务端扛不住的,后台下发 token 直传 oss 吧
    draguo
        18
    draguo  
       2021-04-09 13:50:08 +08:00
    不是相册类应用传原图干啥,存储不要钱吗,传输也慢
    TingHaiJamiE
        19
    TingHaiJamiE  
       2021-04-09 15:32:40 +08:00
    @xmumiffy 这样的客户一般会先联系运营商客服,“你们流量数据有问题”。
    leonme
        20
    leonme  
       2021-04-09 17:34:46 +08:00
    @xxfye 那 m1 剪辑视频比其他机器流畅很多怎么解释?这算重负载了吧
    dqzcwxb
        21
    dqzcwxb  
       2021-04-09 17:41:54 +08:00
    移动端透传 oss
    NXzCH8fP20468ML5
        22
    NXzCH8fP20468ML5  
       2021-04-09 18:34:30 +08:00 via Android
    @leonme 剪视频的时候 CPU 根本没出力。
    cubecube
        23
    cubecube  
       2021-04-09 20:21:31 +08:00
    你为啥要用 gb 这种来比。。
    实际写两段代码压缩下 jpg 不就行了,另外图像处理,intel 有可能有神油,部分库可以使用 avx2
    muzuiget
        24
    muzuiget  
       2021-04-09 20:24:40 +08:00
    肯定是客户端啊,免费的分布式计算,顺便省流量。
    tzl
        25
    tzl  
       2021-04-09 20:35:20 +08:00
    gb 评价标准不一样吧
    msaionyc
        26
    msaionyc  
       2021-04-09 21:06:25 +08:00 via Android
    @leonme 那是解码器的功劳
    zeropercenthappy
        27
    zeropercenthappy  
       2021-04-09 21:11:09 +08:00 via Android
    看需求。传证件照一般在客户端压。
    leonme
        28
    leonme  
       2021-04-09 21:12:50 +08:00 via iPhone
    @msaionyc 恕我无知
    leonme
        29
    leonme  
       2021-04-09 21:13:04 +08:00 via iPhone
    @xxfye 恕我无知
    dingwen07
        30
    dingwen07  
       2021-04-09 21:18:43 +08:00 via Android
    问题根本就不是性能,压缩图片这事儿十年前的处理器都能做,关键在于传到服务器再压缩那服务器就得处理所有用户的压缩操作,而在客户端压缩每个客户端只需要处理自己的。
    coreki
        31
    coreki  
       2021-04-09 22:06:54 +08:00 via Android
    我是客户端压缩一下,传到 cos
    jiangzhuo
        32
    jiangzhuo  
       2021-04-09 22:16:33 +08:00
    服務器壓縮的話,客戶端手機流量不要錢嗎?服務器帶寬不要錢嗎?如果真的不在意錢,那當然是上更好配置的服務器咯。
    40EaE5uJO3Xt1VVa
        33
    40EaE5uJO3Xt1VVa  
       2021-04-09 23:30:56 +08:00
    现在什么几个亿像素,全都是插值插出来,没用。7 8 年前的诺基亚 1020 就这么搞的
    jim9606
        34
    jim9606  
       2021-04-10 00:23:55 +08:00
    Geekbench 就是个很迷惑的测试,极其偏向 Apple 。
    你自己写个 libjpeg 编码测试都要比 GB 靠谱。
    不过还是建议客户端压缩,原生相机 APP 直出几 MB 证件照片完全没必要。
    0ZXYDDu796nVCFxq
        35
    0ZXYDDu796nVCFxq  
       2021-04-10 00:28:39 +08:00
    大多数服务商都是下行流量不要钱而且比上行带宽要大
    所以带宽支出并不是一个问题

    不过还是建议客户端压缩,毕竟节省 CPU 资源而且给用户省流量
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3157 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:29 · PVG 22:29 · LAX 06:29 · JFK 09:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.