图片上传后服务端压缩 or 客户端压缩后再上传 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Foxkeh
0.01D
V2EX    问与答

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

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

    背景:

    服务端限制上传大小 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
    图片等多媒体服务 使用三方云服务,应该比自己的机器便宜,上传下载非常占用带宽
    106npo
        3
    106npo  
       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  
    PRO
       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     Solana     5436 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 08:00 PVG 16:00 LAX 01:00 JFK 04:00
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86