一个使用腾讯云-cos-原图保护功能的问题,腾讯云工单没有得到满意的方案,请教下大家,有没有其他方案呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
工单节点使用指南
请用平和的语言准确描述你所遇到的问题
厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
cyjme
V2EX    全球工单系统

一个使用腾讯云-cos-原图保护功能的问题,腾讯云工单没有得到满意的方案,请教下大家,有没有其他方案呢?

  •  
  •   cyjme 2020-06-03 23:16:01 +08:00 2607 次点击
    这是一个创建于 1960 天前的主题,其中的信息可能已经有所发展或是发生改变。
    两个腾讯云功能的主角:
    1 、cos 对象存储,
    2 、数据万象-原图保护

    期待:
    用户只能访问到处理后的图片,但是无法访问原图。
    『单纯看这个期待值,使用 数据万象-原图保护 很容易完成。』


    但是,考虑下面这种情况:

    用户在上传图片时,可以通过浏览器调试工具看到上传时的域名,这个域名是 cos 对象存储的(已知使用数据万象的域名无法完成上传),那么用户就可以直接通过这个 cos 域名去访问到原图。

    只要用户会查看调试工具,就能拿到原图了!!


    腾讯云工单给的回复,cos 设置私有读,让用户带签名访问,带签名的话也可以直接得到原图的啊。

    还在和腾讯云工单沟通中,但是目前第二个工单也是说让带签名。。。。

    我觉得我的需求挺合理的,带签名上传,读取的时候不需要签名,只可以读到处理后的非原图。但是现在看来好像腾讯云的原图保护功能无法满足这个需求。
    17 条回复    2020-06-07 17:26:35 +08:00
    huyi23
        1
    huyi23  
       2020-06-03 23:18:41 +08:00
    带签名怎么获得原图啊?两个签名的 sign 都不一样啊
    letitbesqzr
        2
    letitbesqzr  
       2020-06-03 23:59:52 +08:00
    @huyi23 #1

    楼主估计想的是,私有写公有读,读取不带签名。

    数据万象的原图保护,似乎只在经过数据万象域名的时候才生效,在公有读的情况下,如果知道 cos 自动分配的域名,没办法避免读取到原图....
    cyjme
        3
    cyjme  
    OP
       2020-06-04 00:06:02 +08:00
    @huyi23 我想到了 url 不同,签名也不同,但是查询文档后,根据我对文档的理解,数据万象域名并不会校验签名,只有 cos 会校验。

    这个我明天再验证下。
    letitbesqzr
        4
    letitbesqzr  
       2020-06-04 00:09:01 +08:00
    数据万象就坑在这点...不能像 cdn 那样进行内部鉴权,存储库开启私有后,用户访问数据万象就必须带上签名。。
    cyjme
        5
    cyjme  
    OP
       2020-06-04 00:13:52 +08:00
    现在客服讲理论上是可以通过 数据万象的域名上传图片的,这样子就可以不暴露 cos 的域名。

    目前通过数据万象的域名上传图片遇到错误,客服在排查中。
    cyjme
        6
    cyjme  
    OP
       2020-06-04 00:23:39 +08:00
    @letitbesqzr 对的,我也是很不能理解这点,只要像 cdn 那样做个内部鉴权,就什么问题都没有了。。。

    看了下阿里云的文档和控制台,应该没有这个问题,因为图片处理没有和 oss 分离开。。
    106npo
        7
    106npo  
       2020-06-04 00:24:00 +08:00 via Android
    不明白为啥 cos 要公有读?
    yuzo555
        8
    yuzo555  
       2020-06-04 00:28:16 +08:00
    1. 前端不会计算出 GetObject 的 sign,用户无法直接 F12 访问,需要自行计算签名;
    2. 如果你担心 1. 的问题,可以不要授权 name/cos:GetObject 这个权限给临时密钥;
    3. 如果你仍然担心,还可以自行在上传完成后重命名(服务端 copy 后 delete 源文件名)。
    cyjme
        9
    cyjme  
    OP
       2020-06-04 00:31:08 +08:00 via iPhone
    @xmumiffy 网站业务上来说图片是要公有访问的。

    为什么不 cos 私有读,然后 cdn 层面做公有呢?
    cos 绑定 cdn 的确支持回源鉴权。

    但是因为要经过数据万象处理图片,而数据万象不支持回源鉴权。
    yuzo555
        10
    yuzo555  
       2020-06-04 00:35:04 +08:00
    @cyjme 数据万象支持 CDN 私有鉴权的。你私有之后遇到的问题是啥?
    cyjme
        11
    cyjme  
    OP
       2020-06-04 00:43:11 +08:00
    @yuzo555
    1 的方案,但是我觉得还不至于为所有的图片都生成签名。如果每次用户访问的时候生成签名,明显浪费了时间在生成签名上。如果提前为每个资源生成一个较长期的签名,这些签名总要过期的,签名后的链接保存也是问题。 网站业务的角度来说,这些大量的图片本来就是公开的,只是希望用户看不到原图而已,所有的都加签名好像有点过份了。另外根据目前看文档的理解,用户拿到签名,就可以访问到原图了。cos 中的是原图,数据万象相当于是网关,签名只针对 cos,数据万象不处理签名。

    2 不是很理解,应该 1 种可以证明不可取。

    3 你的理解应该是上传后直接就生成了,缩略图或水印图,但是目前我是想直接通过原图保护这个网关层面的逻辑,在访问图片的时候实时处理。

    为了解决问题,其实也可以设置上传后,所有文件自动拷贝到另外一个桶里,或者上传后马上处理图片。
    解决业务问题,现在是有办法解决的,只是觉得,腾讯这个原图保护的功能有缺陷,没有给用户一个很好的体验。
    cyjme
        12
    cyjme  
    OP
       2020-06-04 00:47:38 +08:00
    @yuzo555 控制台和文档中,都没有找到『数据万象支持 CDN 私有鉴权』

    在 cos 中设置 cdn 的时候是可以启用 回源鉴权的,但是数据万象中没找到。
    myd
        13
    myd  
       2020-06-04 00:49:11 +08:00 via Android
    可以设置只能写不能读
    cyjme
        14
    cyjme  
    OP
       2020-06-04 00:49:42 +08:00
    v 站被 google 收录的真快,刚才已经可以搜索到这个帖子了。
    cyjme
        15
    cyjme  
    OP
       2020-06-04 00:51:20 +08:00
    @myd 没有这么简单,有兴趣深究的话,可以再看下上面的几个回复。
    yuzo555
        16
    yuzo555  
       2020-06-04 00:57:00 +08:00
    确实是,他这个设计逻辑有问题。

    但是你还是可以开启 COS 的私有读写的,然后 CDN 用数据万象的源站当源站。
    用户 F12 得到的 COS 地址就无法访问了,缺点是如果用户替换了 COS 源站地址中的 cos.ap-guangzhou 替换为 picgz,就又可以访问了。
    gouki0123
        17
    gouki0123  
       2020-06-07 17:26:35 +08:00
    @cyjme 不知道你前端上传是怎么获取密钥的,如果是通过后台返回临时密钥,前端 SDK 计算签名的方式,可以申请密钥的时候只给上传权限,不给下载权限,就可以解决用 COS 域名可以访问到原图的问题。如果希望处理后的图片可以公有读,那么把处理结果存在另外一个公有读的桶就好了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     989 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 18:40 PVG 02:40 LAX 11:40 JFK 14:40
    Do have faith in what you're doing.
    ubao msn 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