付费文件的特殊性
WooCommerce 的可下载商品文件放在 uploads/woocommerce_uploads/,本地靠 .htaccess 拒绝直链。进桶之后这个保护消失了——如果桶是公开读、对象键可预测,知道地址就能绕过付费墙。插件用 「付费下载目录」 策略解决这个问题。
三档策略 (设置 → 高级 → 付费下载目录)
| 策略 | 行为 | 适合 |
|---|---|---|
| 不进桶 (默认) | woocommerce_uploads 留在服务器,靠本地权限拦截 | 大多数站点:付费文件本来就不大,源站直接供下载 |
| 私有进桶,下载走签名 | 对象以私有 ACL 上传,商品下载地址带签名,知道地址也拿不走 | 大文件 / 高下载量,想卸载源站流量 |
| 照常进桶 | 跟随全站对象访问设置 | 桶本身就是私有 + 签名模式的站点 |
下载地址的自动回退
插件改写商品下载地址前会先确认对象真的在桶里——商家本地直传的文件、已拉回删除的对象,下载地址自动退回本地路径,订单交付不会 404 。
已经把付费文件传进桶了怎么办
切到 「私有进桶」 后新对象私有,旧对象还是公开的。用厂商控制台的批量 ACL 工具把旧对象改私有,或拉回本地后再按新策略重新补传。
