摘要

  • 截至2026年9月19日查阅的Cloudflare R2价格说明,Standard与Infrequent Access均列示零出站流量费,但后者另有每GB 0.01美元的数据检索费,并采用更高的操作单价。这是当时可见的条款,不是当天发生降价的证据。
  • 按列示单价作分项演算,1,000 GB-month的存储在Standard下为15美元,在Infrequent Access下为10美元。低频访问若产生500个计费GB的检索量,5美元检索费就会用尽这部分存储价差,尚未计入操作价差、免费额度等因素。这不是客户账单或普遍适用的盈亏临界点。
  • Cloudflare的Rclone文档确实给出了从R2复制对象到本地的示例,不能把它描述成没有导出路径。但复制对象、验证应用和完成业务切换,是不同的验收事项;本文没有进行实际迁移测试。

R2明确了一项收费,却没有替客户完成退出

Cloudflare的R2同时提出了两个值得分开判断的条件:出站数据传输的列示费率为零,文档也描述了向外复制对象的方法。前者改变的是成本构成,后者提供的是一条可以着手验证的技术路径。把两者合在一起说成“企业可以免费换云”,中间仍缺少一段关键证据。

这段证据不是另一个价格口号,而是一项可执行的替代方案:谁有权取得数据,复制会产生哪些计费行为,目的地能否接住应用需要的状态,切换期间服务如何继续,以及新系统是否还依赖原供应商才能正常工作。只有把这些问题落到具体业务上,出站费率才可能转化为真实的选择空间。

零出站费本身不应被轻描淡写。如果按适用条款计算的费率是每GB零美元,那么这项按出站量计价的费用就不会随出站量增加。企业不必因为其他成本尚未消失,就否定一个确实为零的价格分项。但同样不能把一个分项的零,扩写成整项工作的零。

R2的低频访问价格结构尤其能说明这种区别。它用较低的存储单价,与较高的操作单价、单独的数据检索费和最低存储期限并列。对访问较少、保留时间符合要求的业务,较低的存储单价可能有用;对检索较多或请求结构不同的业务,仅看存储报价就可能得出错误的预算结论。

这里没有证据表明R2在2026年9月19日新近取消了一笔费用,也没有历史价格对照足以计算此次“降价”幅度。本文讨论的是该日查阅资料时的列示条件,以及这些条件怎样影响成本判断和退出验证。日期限定的是观察时点,不是价格生效日。

同样叫“取出数据”,账单上却可能是不同的事

根据Cloudflare的R2价格文档,两类存储的主要列示单价如下。下表金额均为美元,沿用文档的GB、GB-month和操作次数计价口径。

计价项目 Standard Infrequent Access
存储,每GB-month 0.015 0.010
Class A操作,每百万次 4.50 9.00
Class B操作,每百万次 0.36 0.90
出站数据传输,每GB 0.00 0.00

Infrequent Access还单独列示每GB 0.01美元的数据检索费。出站传输和数据检索因此不能当成同一个收费名称:前者为零,不会自动令后者也为零。类似地,如果一项导出工作产生了应计费的操作,出站费率并不会把这些操作的单价一并抹去。

文档中的Class A大体涉及写入、列举和变更类操作,Class B大体涉及读取及元数据读取。实际预算仍须按具体行为对应适用计费规则,不能把这种概括变成“导出一个对象只收一次请求费”的假定。本文没有取得某次迁移逐项产生多少请求的记录。

只比较列示单价,低频访问的存储价格比Standard低0.005美元/GB-month,即低三分之一;它的Class A操作单价则为Standard的两倍,Class B为2.5倍。这些都是同一份价目表内的算术关系,不是前后两次价格之间的变化,也不是某位客户已经获得的节省。

企业容易混淆的,正是这些量的不同性质。存储量是按时间计量的占用,检索量是需要核对的计费数据量,请求数又是另一组输入。掌握了其中一个,并不意味着另外两个也已经确定。一份只列“总共存了多少数据”的采购表,尚不足以比较这两类存储的费用。

这也解释了为什么“出站免费”既重要又有限。它消除了一个随出站量计价的分项;其余有价的输入,却可能在导出过程中发生。应当逐项确认这些输入,而不是把所有后续费用统称为“隐藏的出站费”。检索和操作本来就是列示的不同收费项目,准确分类比重新命名更有助于核算。

5美元存储价差,能承受多少检索

把R2列示费率写成一个简化模型,可以看清哪一项在推动结果。设S为比较期间的计量存储量,单位为GB-month;A、B分别为以百万次计量的Class A和Class B操作;R为低频访问的计费检索量,单位为GB。

在假定两类存储对应相同S、A、B,并按列示单价线性计算时,得到以下美元分项模型:

Standard = 0.015 × S + 4.50 × A + 0.36 × B

Infrequent Access = 0.010 × S + 9.00 × A + 0.90 × B + 0.010 × R

低频访问减Standard = -0.005 × S + 4.50 × A + 0.54 × B + 0.010 × R

这不是账单计算器。模型没有计入免费额度、计费单位向上取整、最低存储期限调整、税费、协商条款、抵扣或折扣,也没有计入目的地服务、工程、验证、双系统运行及其他服务成本。它只把几组已列示单价放在一起,隔离存储价差如何被其他分项抵消的机制。现实中,两种方案产生的操作次数也未必相同。

先把操作项目放在一边,只观察1,000 GB-month的存储。Standard的存储分项为15美元,低频访问为10美元,毛价差是5美元。此时低频访问每增加一个计费GB的检索量,按上述单价就增加0.01美元检索费。

假设的低频访问计费检索量 Standard存储分项 低频访问存储分项 低频访问检索分项 低频访问存储加检索
0 GB 15美元 10美元 0美元 10美元
500 GB 15美元 10美元 5美元 15美元
1,000 GB 15美元 10美元 10美元 20美元

表内比较仍只限于所列分项,不是任何一栏的最终应付总额。当检索量为500个计费GB时,检索费已用尽原来的5美元存储价差;若检索量为1,000个计费GB,低频访问的存储加检索分项为20美元,而Standard的存储分项仍为15美元。更高的操作单价还没有进入这张表。

不能由此得出“读出一半数据,低频访问就一定不划算”。1,000 GB-month是带有时间维度的存储计量,500 GB是另一个计费量;两者不是一次实测中已确认的存储容量和物理传输量。本文也没有假定每次访问都会检索整个对象,更没有测量某个客户在一个月内的实际访问分布。

模型真正说明的是:较低的静态存储价格,需要与使用它时产生的成本一起判断。在固定S、A、B的简化比较里,检索量增加会抬高低频访问一侧的成本;在固定其他输入时,操作量增加也会扩大较高操作单价的影响。最终结果取决于客户自己的输入,而不是产品类别名称中是否带有“低频”两个字。

反过来,不能因为存在抵消关系,就断言低频访问总比Standard昂贵。如果检索和操作的影响较小,且其他适用条款不会改变结果,较低的存储单价仍可能形成优势。价格分析的任务是找出优势成立的条件,而不是先选定支持或反对某一产品的立场,再让算式配合结论。

免费额度和最低期限,为什么不能放到脚注里就算完

Cloudflare的价格说明还列出了Standard专属的月度免费额度:10 GB-month存储、100万次Class A操作和1,000万次Class B操作。它不适用于Infrequent Access。低频访问另有30天最低存储期限,Standard则没有最低存储期限;用量还存在向上取至下一计费单位的规则。

这些条件直接限制了刚才那个线性算式的用途。对于一个接近免费额度的使用规模,把全部用量直接乘上Standard单价,并不能代表实际账单。对于在最低期限内删除或调整存储安排的对象,也不能只凭每GB-month报价推算应付金额。具体的删除、类别变更和期限计费影响,需要适用的详细规则,而不是在模型里补一个未经核实的系数。

本文不假定免费额度在不同账户、项目或其他范围之间怎样分配,也不计算取整规则与多种用量组合后的精确交互。采购团队应把这些问题列入账单核对,而不是把它们视为不影响结论的细枝末节。分项比较可以解释方向,精确付款仍需要正确的范围、单位和条款。

退出成本也应与日常成本分开建模。一个在常态下很少检索的存储集合,可能在计划搬迁时出现不同的访问安排。这是需要测试的情景,不是本文观察到的客户行为。评价一种存储类别适不适合日常使用,与评价某个退出窗口需要多少钱,是两个相关但不相同的问题。

请求结构尤其不能被数据总量遮住。两项工作即使具有相同的计量存储量或出站量,也不必产生相同的Class A和Class B次数。应该问的是:对象怎样被列举和读取,验证还需要哪些动作,失败重试如何处理,哪些行为落入哪一项计费。没有这些记录,就不应给出一个看似精确的“每次迁移总价”。

因此,财务和技术团队需要共享的是同一组可核对输入,而不只是同一张报价单。技术团队提供实际行为与计量,财务团队将它们映射到条款,再把模型结果与账单对照。任何一方单独用“零出站”或“每GB更便宜”概括整项工作,都可能遗漏另一方才看得见的成本。

文档里有向外复制,不只是进入R2的入口

退出分析不能从一个错误前提开始:R2并非只有导入说明。Cloudflare的Rclone文档给出的示例包括把R2桶中的一个对象复制到本地目的地:

rclone copy r2:user-uploads/dog.txt .

这条示例的方向是从R2向外,因而比笼统的“允许迁移”更具体。它指出了客户可以验证的一项操作。本文没有执行这条命令,也没有把一个对象的文档示例当成完整生产环境迁移的记录。

文档所述配置包括选择S3兼容存储后端和Cloudflare R2供应商,使用访问密钥ID、访问密钥及S3 API端点;配置还涉及Cloudflare账户ID,以及权限和范围适当的R2 API令牌。这些是准备测试时需要落实的条件,不是任何特定客户缺少凭据或无法取得数据的证据。

对企业来说,示例的价值在于把一个抽象问题变成了一个可检验问题:有权限的人员能否按照经过批准的配置,取得需要迁出的对象?但一次本地复制即使成功,也只证明了那次操作的范围。它没有同时证明所有对象、所需元数据和应用状态都已经转移,更没有证明目的地业务能够接替原系统。

这里还要区分复制命令本身的行为。Rclone对copy的说明称,它在源和目的地之间复制文件、跳过相同文件,并不删除目的地文件;当源路径是目录时,复制的是该目录的内容,而非目录本身。

“不删除目的地文件”不等于“不会改变目的地”。复制仍是写入行为,不能被当作只读检查,也不能仅凭这一描述就保证目的地原有内容完全不变。测试方案应明确目的地的用途、允许变化的范围和验证方式,而不是把命令名称当作安全保证。

Rclone还记录了--dry-run预演选项,可以在不实际执行复制的情况下预览操作。这适合检查准备执行什么,却不能提供真实吞吐量、完成时间或应用可用性的测量。预演成功与业务可以迁走之间,至少还隔着实际传输和实际运行两次验证。

另一个不应省略的区别是sync。Cloudflare的相关说明提醒,sync可以删除目的地中源端不存在的文件。因此,不能把经过考虑的复制测试随意替换成同步,更不应在尚未确认目的地状态和恢复安排时,将可能具有删除作用的同步当成常规演练。

这些命令语义帮助界定了测试边界,却没有给出跨供应商迁移的全部传输拓扑。不能仅因为两个端点都被称作S3兼容,就推断复制会在两个供应商之间直接于服务端完成,不占用其他传输资源。本文没有取得足以作出这项判断的条件说明,因此不把它计入成本优势。

“S3兼容”应当展开成应用清单

Cloudflare的S3 API兼容性说明表示,R2实现S3 API以便利用户和应用迁移,同时说明其API功能存在差异,并随着实现工作推进记录当前状态。这支持的是逐项检查应用实际调用,而不是由一个兼容性标签推定所有场景可互换。

对计划替换存储的企业,最有用的清单不是产品宣传页上的功能总数,而是本业务实际依赖什么:会发出哪些操作和参数,需要保留什么对象信息,哪些访问控制、标识或其他状态必须在目的地继续发挥作用。列出这些事项,是提出验证要求;本文没有据此认定R2存在某个具体功能缺陷。

本文也不对未核实的单项操作作支持或不支持的判定。无法证明完全等价,不等于已经证明无法迁移;反过来,找到一项成功复制操作,也不等于证明整个应用所需的行为都已覆盖。这两个方向的过度推断,会同样误导采购决策。

比较可执行的办法,是先把测试对象与业务目的连接起来。如果目标只是取回一份文件,本地复制并验证该文件可能就是相关任务;如果目标是让另一套系统接替业务,则还需要验证该系统的应用行为、权限安排及运行要求。不同目标对应不同验收范围,不能用最小的任务结果替代最大的业务承诺。

企业还应区别“取得数据”和“停止依赖”。复制品可能成为进一步替换的基础,但是否已经摆脱原系统,要看新业务链条还需调用什么。这不是对Cloudflare依赖关系的既定诊断,而是每个客户都需要检查的系统边界。保留某种依赖也未必错误;重要的是它是否被识别、接受并纳入方案,而不是在退出时才被发现。

同样,迁移工作量不自动构成不当锁定的证据。数据规模、客户自行选择的架构和业务连续性要求,都可能使切换复杂。供应商集成也可能带来实际效率。分析必须追问成本来自哪里、由谁控制、能否事先降低,而不是把所有工程工作都归为供应商施加的障碍。

从一条复制命令,到一项能交付的替代方案

判断实用退出能力,至少需要完成几件性质不同的事。以下是建议的验证路径,不是本文已执行的实验,也不是对任何客户通过或失败的报道。

首先,确定退出目标。企业要的是可以取回对象、可以在另一处重建应用,还是可以在一个既定窗口内完成业务切换?如果没有先写清目标,团队很容易拿“复制完成”回答一个实际上有关服务接替的问题。

其次,建立有代表性的测试范围。应由业务需求决定需要覆盖哪些对象、元数据和应用行为,而不是选择最容易复制的一小部分后,把结果外推到全部工作。这里没有通用的样本规模或统一通过时限;合适范围取决于企业自己的风险和服务要求。

第三,实施经过授权的真实传输,并记录完成时间、错误、重试、请求计量和检索计量。预演可以先行,但只有实际操作才会产生实际执行结果。对于计费判断,还需要区分已经测到的用量与依据单价估计的金额,并在可以取得账单时核对两者。

第四,让目的地应用使用迁出的内容。验证应围绕业务需要的结果,而不仅是“对象似乎存在”。应检查哪些状态必须一致,哪些状态允许重建,以及未覆盖事项会怎样影响业务。这些是客户测试的设计要求,不是文档已经替客户作出的完整性承诺。

第五,设计切换和回退。新系统能够读取一组测试内容,不等于生产切换的时间、权限和组织安排都已就绪。谁批准切换、谁判定失败、哪些原始数据必须保留、失败后怎样恢复,都应在可能发生不可逆变化之前明确。

最后,确认替代方案按预期的依赖边界运行。若方案仍需要原供应商的一项服务,应说明这是计划内保留,还是尚未完成的替换工作。只要边界透明,企业就可以有意识地选择集成;如果边界不清,名义上的第二个存储位置也未必构成业务上的替代。

成本核算应沿着同一路径走。来源端的操作和检索、目的地相关收费、人员投入、验证,以及必要时的并行运行,应作为不同项目记录。本文没有对它们估价。把未知项目列出来,比把它们当成零更诚实;但列出项目也不代表每个客户一定会发生同样的成本。

定价优势能够影响选择,但市场结果仍待证据

从公司策略看,零出站费使R2的价格构成少了一个按出站量收费的分项。在其他条件相同的比较中,这个分项的差异可能影响客户对复制、试验或迁出工作的预算。只是本文没有提供其他供应商的适用报价,因此不据此排列市场上谁最便宜。

客户如果能够在可接受的成本和时间内验证替代方案,才可能把技术可行性转化为更有分量的采购选择。由此进一步推断议价能力改变,仍需要看到这种选择确实可被执行。再进一步推断行业竞争格局变化,则需要客户行为或竞争者反应的证据,而不是一张价目表。

对投资者,这个界限同样重要。客户侧少付某种费用,不揭示R2的内部单位成本、利润率、交叉补贴或Cloudflare的具体商业意图。本文没有这些数据,也不从零出站费反推产品盈利能力或定价动机。客户价值与供应商收益可以相关,但不是同一个已经被证实的事实。

因此,当前能够成立的结论应当保持具体:R2列示了零出站流量费,且文档给出了向外复制对象的程序。这比单有一句“可迁移”更有内容;低频访问的收费结构又清楚显示,零出站与零总账单是不同概念。至于一个企业能否真正换云,下一项有判别力的证据,是有代表性的真实传输、目的地应用验证,以及与之对应的完整成本记录。

本文依据截至2026年9月19日查阅的Cloudflare和Rclone文档梳理条款并进行分项演算,未核验客户实际账单,也未开展迁移或性能测试。文档支持讨论价格机制和已描述的操作,不支持宣称已有客户实现特定节省、完整迁出或不间断切换。