1. handleCallback先写Redis缓存再complete Future, 避免等待线程被唤醒后读取缓存为空的竞态条件 2. RestTemplate使用URI.create()传入预签名URL, 避免对已编码的%3B等字符做二次编码导致COS 403 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1. handleCallback先写Redis缓存再complete Future, 避免等待线程被唤醒后读取缓存为空的竞态条件 2. RestTemplate使用URI.create()传入预签名URL, 避免对已编码的%3B等字符做二次编码导致COS 403 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>