迁移Discourse恢复数据失败

是的,似乎与 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