WooCommerce 付费下载与私有对象

付费文件的特殊性

WooCommerce 的可下载商品文件放在 uploads/woocommerce_uploads/,本地靠 .htaccess 拒绝直链。进桶之后这个保护消失了——如果桶是公开读、对象键可预测,知道地址就能绕过付费墙。插件用 「付费下载目录」 策略解决这个问题。

三档策略 (设置 → 高级 → 付费下载目录)

策略 行为 适合
不进桶 (默认) woocommerce_uploads 留在服务器,靠本地权限拦截 大多数站点:付费文件本来就不大,源站直接供下载
私有进桶,下载走签名 对象以私有 ACL 上传,商品下载地址带签名,知道地址也拿不走 大文件 / 高下载量,想卸载源站流量
照常进桶 跟随全站对象访问设置 桶本身就是私有 + 签名模式的站点

下载地址的自动回退

插件改写商品下载地址前会先确认对象真的在桶里——商家本地直传的文件、已拉回删除的对象,下载地址自动退回本地路径,订单交付不会 404 。

已经把付费文件传进桶了怎么办

切到 「私有进桶」 后新对象私有,旧对象还是公开的。用厂商控制台的批量 ACL 工具把旧对象改私有,或拉回本地后再按新策略重新补传。