中国大陆内

计费项 腾讯 阿里
标准存储 0.099 元/GB/月 0.12 元/GB/月
外网下行流量 0.5 元/GB 00:00 - 08:00 (闲时):0.25 元/GB
08:00 - 24:00 (忙时):0.50 元/GB
CDN 回源 0.15 元/GB 0.15 元/GB
读写请求 0.01 元/万次 PUT 类型请求:每月 0 - 500 万次:免费
>500 万次:0.01 元/万次
GET 类型请求:每月 0 - 2000 万次:免费
>2000 万次:0.01 元/万次

双方的最低计费门槛为 0.01 元,即低于 0.01 元的消费直接算作 0 元(免费)。双方按量付费规则如下:

  • 阿里云:
    • 按小时计费
    • 存储费用=存储量(GB)×月单价÷30(天)÷24(小时)
  • 腾讯云:
    • 按天计费,日存储容量费用 = 存储容量月单价 / 30 * 日存储容量
    • 日存储容量 = 当日“每5分钟存储容量”之和 / 288(采样点数)

综上可计算出双方触发计费门槛时的最低存储容量:

也就是你最多可以白嫖这么大的空间(只是存储不计费,流量还是贵)

  • 阿里云:0.01÷(0.12÷30÷24)=59.999960(GB)0.01 \div (0.12 \div 30 \div 24) = 59.9999 \approx 60(GB)
  • 腾讯云:0.01÷(0.099÷30)=3.03033.03(GB)0.01 \div (0.099 \div 30) = 3.0303 \approx 3.03(GB)

我自认为算的没错,但没想到相差会这么大。。。

关于腾讯云采样点的解释

假设你存了 xx GB 的数据,并且在一天时间内保持不变,那么你的日存储容量为:

StoragePerDay=(1×24×60÷5)x÷288=xStoragePerDay = (1 \times 24 \times 60 \div 5)x \div 288 = x

也就是“每 5 分钟采样一次”正好对应 288 个采样点。之所以这么计算是为了当你的存储容量发生变动时,能够快速的调整之后的存储费用。

中国大陆外

以香港为例

计费项 腾讯 阿里
标准存储 0.156元/GB/月 0-5GB 免费,超出:0.136元/GB/月
外网下行流量 0.75 元/GB 0-5GB 免费,5GB-10TB:0.75 元/GB
CDN 回源流量(元/GB) 0.75 0.75
读写请求(元/万次) 0.01 PUT:0.1,GET:0.01

CDN

按量计费

这里因为是自用,所以只考虑中国内地

阿里

image.png|300x200

腾讯

image.png|200x200

双方都是阶梯计费,但腾讯云最高档位也比阿里云便宜。

关于 CDN 计费规则

image.png

cdn 计费图示意,OSS/COS 通用

从上图可知,对象存储加上 CDN 后,主要产生的计费项目变化如下:

  1. 用户上传到 OSS/COS 依然免费
  2. 用户从对象存储下载资源时,访问路径从 用户-OSS/COS 变成了 用户-CDN-OSS/COS,因此:
    1. 加上 CDN 后肯定会把对象存储设置为私有读写,此时原来从 OSS/COS 直接流向用户(公网)的流量就变成了 CDN 的回源流量(0.5 元/GB -> 0.15 元/GB)
    2. 用户只会和 CDN 交互,因此会产生 CDN 的下行流量费用(0.21 元/GB)

综上所述,假设同样要从对象存储下载 1GB 数据(这里忽略请求等费用,只考虑流量费用):

  • 不使用 CDN:0.5 元
  • 使用 CDN 但未命中 CDN 缓存:0.21+0.15=0.36 元
  • 使用 CDN 且命中 CDN 缓存:0.21

使用 CDN 除了流量费用变得便宜,更重要的是以下两点:

  1. 对象存储本质上相当于你的一个私有存储,公开对外访问本就是存在严重安全隐患的
  2. 各大厂商针对 CDN 都有比对象存储更完善的安保报警机制,当发生盗刷时能够及时通知并下线 CDN,因此更安全

    及不及时不好说,但起码能够下线 CDN,个人用户设置几个 G 的阈值,真盗刷了也用不了几个钱。更何况还有防盗链之类的,虽然 ob 不支持 hhh。

[!warning] COS 重大发现
他妈的,人家腾讯 COS 不用设置自定义域名就可以实现在线预览,这 TM 才叫图床!
已经不能用了 hhh

当前使用方案总结

  1. 腾讯云 CDN + 阿里云 OSS (肯定挑便宜大碗的用,没毛病)
  2. CDN 设置单日封顶以及5分钟内封顶,触发报警后 CDN 永久离线

TODO

根据官方文档,有一种模式也许可以进一步节省流量。将对象存储挂载到厂商同地域的云服务器,这样对象存储的流量传输全部走内网,属于免费。然后对服务器套上(全站)CDN,如此一来只会产生 CDN 下行流量。

不过受限于国内价比黄金的带宽,如果访问量较高且触发回源的话,可能会因为小水管的原因收到阻塞。