测试站传了 40 张产品图,生产 bucket 里多出一个 test 目录,CDN 上也能访问到,运营看到后以为是新素材直接用了。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
define('OSS_BUCKET', 'site-test');
define('OSS_PREFIX', 'staging/');
add_filter('oss_auto_upload', '__return_false');
对象存储插件从生产复制的配置,bucket 和访问密钥都没换。测试站的媒体库上传后自动同步,路径规则也和生产一致。这一点先确认清楚,后面就不用反复试。
「对象存储环境混用」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。
改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。
具体做法是,测试站单独建 bucket,或者至少用独立前缀;访问密钥按环境分配,测试用的密钥只能写测试 bucket;同步插件在测试环境默认关闭,需要时手动开;清理生产 bucket 里误传的测试文件并刷缓存。
改完照着核一遍,测试站上传的图片只出现在 site-test 桶,生产桶文件数不变,CDN 上搜不到测试图片。
