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

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

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

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

    进度同步

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

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

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

    缓存失效原因

    官方答复是:

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

    我的方案

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

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

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

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

    ---

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

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