阿里云的 OSS 操作触发 CDN 自动缓存功能挂了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
工单节点使用指南
请用平和的语言准确描述你所遇到的问题
厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
cheese
V2EX    全球工单系统

阿里云的 OSS 操作触发 CDN 自动缓存功能挂了

  •  
  •   cheese 21 小时 14 分钟前 1067 次点击
    一大早被客户 call ,说图片上传后一刷新还是老样子,没法更新。一排查是这个功能直接失效了,跑去问客服,客服说这个功能就是不保证可用的,跟我说有需求就去手动在 CDN 控制台自己刷新。

    阿里云客服还是牛,已有功能也不保证可用。让他提交给开发,跟我说这个需求会记录,等产品评估。不知道的以为我提了个新功能,还得评估。
    第 1 条附言    15 小时 49 分钟前

    进度同步

    投诉反馈速度很快,投诉完大概半小时,客诉客服就回电并记录了问题。

    后续又有三个电话沟通,问题确实反馈到了对应团队,并给出了两个解决方案:

    1. 调用 CDN 接口主动刷新。
    2. 触发云函数去刷新(本质上是方案 1 的云端调用版,可能安全性稍好)。

    缓存失效原因

    官方答复是:

    • OSS这侧的CDN 自动刷新是公共通道,有用户上传了海量文件并开启了该功能,导致通道被堵塞,队列一直未清空。让我等几天看看,应该会恢复
    • 此原因与楼内 V 友的猜测一致。

    我的方案

    添加了主动刷新,虽然要额外支付一笔CDN 接口调用费(非常便宜),但还是不开心。

    总结: 在线售后不行,投诉客服挺负责。云服务使用时,能用收费接口解决就用收费的,免费的随时可能出问题,且协议上不保证可用性,只能进行道德谴责。

    23 条回复    2025-12-02 19:43:39 +08:00
    106npo
        1
    106npo  
       21 小时 9 分钟前 via Android
    是说更新图片就直接在 cos 上传个同名文件覆盖么
    xiaoxiaomingming
        2
    xiaoxiaomingming  
       20 小时 17 分钟前
    您好,这里是阿里云售后工作人员,您可以提供下阿里云账号昵称或服务编号,我马上带回核实
    shakaraka
        3
    shakaraka  
    PRO
       20 小时 9 分钟前
    我记得确实是需要手动触发。而且 oss 这种在业务上最好不要覆盖比较好
    SingeeKing
        4
    SingeeKing  
    PRO
       20 小时 2 分钟前
    缓存自动刷新:在 OSS 控制台的 Bucket 配置 > 域名管理页面为绑定的域名开启“CDN 缓存自动刷新”。当通过 API 更新 OSS 文件时,OSS 会自动触发 CDN 刷新任务,确保用户能及时访问到最新资源。

    说明
    此功能仅在 CDN 加速与 OSS Bucket 归属同一阿里云账号时有效,且不保证绝对的及时性。对于时效性要求极高的场景,建议在更新文件后主动使用 CDN 的刷新功能。

    ---

    估计实现就是丢了个刷新事件到队列里,啥时候刷新就看队列拥堵程度了
    freevioce
        5
    freevioce  
       20 小时 1 分钟前
    cdn 这种场景就是有缓存的,要想覆盖的文件立马生效吗?解决方案:
    1. 别覆盖,重命名
    2. 刷新 CDN 缓存,等生效
    cheese
        6
    cheese  
    OP
       20 小时 1 分钟前
    @106npo
    @shakaraka
    产品逻辑比较简单,客户没啥需求,几乎等于一个静态纯展示页面,但图片又有频繁替换的需求,替换错误客户直接重新传就完事了。一看 OSS 自带有这种功能,就干脆直传更新了。没想到今天突然就完蛋了
    cheese
        7
    cheese  
    OP
       19 小时 55 分钟前
    @freevioce 是模型文件的一个贴图,需要替换。大概等于是给一块 3D 展板换展画。模型文件内写死了贴图名称,重命名能做,但是代价有点高,要重新写模型内部数据。也怪一开始设计的时候偷懒了。现在先用主动刷新对付了,过几天客户那边有个大活动,估计还有并发,不知道每天的主动刷新次数够不够
    cheese
        8
    cheese  
    OP
       19 小时 52 分钟前
    @SingeeKing 你猜的很有道理。就是今天突然崩了,这个项目稳定运行了两年了。这次之后得想办法改改了
    cheese
        9
    cheese  
    OP
       19 小时 50 分钟前
    @xiaoxiaomingming 在线沟通,看下界面貌似没有服务编号,提了个投诉工单,已经有客服回电了。我先等等回复吧
    xiaoxiaomingming
        10
    xiaoxiaomingming  
       19 小时 43 分钟前
    @cheese 好嘞,有需要的话 @我就行
    106npo
        11
    106npo  
       18 小时 44 分钟前 via Android
    @cheese 配额默认每日 1 万,能申请提升
    yplam
        12
    yplam  
       17 小时 49 分钟前
    这种实现方式就算 CDN 刷新了浏览器也缓存吧,还是你直接设置 no-cache ?
    lp7631010
        13
    lp7631010  
       17 小时 46 分钟前
    不一般都是手动刷缓存或者不覆盖或者资源地址带版本号吗。也是看了你这才知道有自动缓存功能一说
    wangritian
        14
    wangritian  
       17 小时 42 分钟前
    这种需求如果统一给所有资源 url 后面加一个?v=版本号或编译这个版本时的时间戳,并且关闭 cdn 回源时忽略?后 get 参数,是一个好方法吗
    cheese
        15
    cheese  
    OP
       16 小时 8 分钟前
    @yplam 是的,3D 模型贴图里几个特殊的图片,都是 no-cache 的,需要去 cdn 对比最新的资源
    cheese
        16
    cheese  
    OP
       16 小时 4 分钟前
    @lp7631010 普通网页带个版本号是可以解决的,我这主要是网址的路径名称在 3D 模型文件内部,解析的过程是由 3D 库完成的,如果要引入更新和修改的机制就比较麻烦,要么动 3D 库的源码,要么就是需要去实时改写模型文件。代价都高于通知 cdn 刷新。只是之前自动刷新好用,就今天出问题了
    lsylsy2
        17
    lsylsy2  
       15 小时 25 分钟前
    @xiaoxiaomingming 可以给工程师带个建议吗?
    OP 后来提到
    “OSS 这侧的 CDN 自动刷新是公共通道,有用户上传了海量文件并开启了该功能,导致通道被堵塞,队列一直未清空。让我等几天看看,应该会恢复”

    可以建议工程师加一个以用户为单位的限流、优先级功能,不然的话理论上恶意用户可以使用类似功能实现 DoS 的效果(我上传海量的 1 字节文件然后开启功能,费用不高甚至用非法抛弃式账号,然后导致整个服务可用性下降)
    1daydayde
        18
    1daydayde  
       13 小时 17 分钟前
    cdn 刷新竟然收费??? 离大谱。只见过预热(预取)收一点费用的,刷新功能应该属于基本功能。
    LeegoYih
        19
    LeegoYih  
       13 小时 7 分钟前
    我自己的项目用 Cloudflare R2 ,香的很
    106npo
        20
    106npo  
       12 小时 59 分钟前
    @1daydayde 刷新不收,可能用户自己把刷新接口又放 cdn 上了?
    YuZiOvO
        21
    YuZiOvO  
       12 小时 26 分钟前 via Android
    @1daydayde 应该是云函数收了一点费
    cheese
        22
    cheese  
    OP
       12 小时 22 分钟前
    @106npo #20
    @YuZiOvO
    @1daydayde 云函数收了一点点点,可以忽略不计,只是不太爽就写出来了
    version
        23
    version  
       12 小时 1 分钟前
    cdn 后台每天 100 个目录刷新..这么多年文件一直是不能同名..用项目名称目录 uuid 那些把
    还有就是多加一个 跨域域名...就必须要重新刷新缓存..不然 cdn 节点还是一直报错..说 15 分钟生效.一直都没效果..还是刷新大法靠谱
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1203 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 23:45 PVG 07:45 LAX 15:45 JFK 18:45
    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