是的,似乎与 R2 存在不兼容问题。
未经测试,但您可以尝试以下方法:
环境变量是在容器的 app.yml 中的 env 块下设置的——也就是您已设置 DISCOURSE_S3_ACCESS_KEY_ID 等变量的同一位置。只需在那里添加这两个变量:
env:
LANG: en_US.UTF-8
# ... 您现有的变量 ...
DISCOURSE_S3_BUCKET: your-r2-bucket
DISCOURSE_S3_ACCESS_KEY_ID: ...
DISCOURSE_S3_SECRET_ACCESS_KEY: ...
DISCOURSE_S3_ENDPOINT: https://<account>.r2.cloudflarestorage.com
# 修复 Cloudflare R2 与 aws-sdk-s3 的校验和不兼容问题
AWS_REQUEST_CHECKSUM_CALCULATION: when_required
AWS_RESPONSE_CHECKSUM_VALIDATION: when_required
然后重新构建容器:
./launcher rebuild app