有人用过 SeaweedFS 吗?鉴于 MinIO 的不确定性,我一直在关注这个选项,并将尝试一下,看看是否存在与 Discourse 的任何兼容性问题。
我通过使用以下规则集使 R2 正常工作:
## 此行集允许上传和下载 R2 S3 托管的文件..
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: auto
DISCOURSE_S3_ACCESS_KEY_ID: access-key-id
DISCOURSE_S3_SECRET_ACCESS_KEY: access-key
DISCOURSE_S3_CDN_URL: https://eufiles.technospider.com
DISCOURSE_S3_BUCKET: exotics-unlimited
DISCOURSE_S3_BACKUP_BUCKET: exotics-unlimited-backups
DISCOURSE_BACKUP_LOCATION: s3
# DISCOURSE_CDN_URL: https://eufiles.technospider.com
DISCOURSE_S3_ENDPOINT: https://71*****5d4976.r2.cloudflarestorage.com
# DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true
DISCOURSE_S3_INSTALL_CORS_RULE: false
当我注释掉 CDN_URL 行后,它就能正常工作了。我猜 R2 自动创建 CDN 的特性意味着你不需要那一行,实际上添加它会破坏东西。
我注释掉了包含图片的行,只是为了保持我的备份大小较小。我使用的是 R2 的免费套餐,不想超出我的限制。
没错。你真的不应该使用 DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS,除非你要迁移离开 S3。将所有图片从 S3 下载下来,然后包含在存储在……S3 上的备份中,这没有意义。我曾经在一个 AWS 存储桶上启用了该设置,结果每天下载每张图片都导致了高额账单。
这应该是一个独立的 CDN,指向你的 Discourse 服务器,而不是 S3 存储桶。有些东西,比如头像,我不太确定还有什么,是从你的服务器提供的。它不起作用的原因是你指向了你的 S3 CDN,而不是站点 CDN。
您的意思是如果您使用两家不同的公司?一家用于存储桶,一家用于CDN?我对这个不太了解,所以请用对三年级学生解释的方式告诉我……
我知道当您在R2界面中创建一个“自定义域名”时,它会充当CDN,这就是我最初尝试添加该行的原因。
无论如何,它对我的测试站点一直运行得很完美,除非它还应该做而没有做其他事情,否则我建议更新原始帖子,以显示Cloudflare现在可以与Discourse一起使用。
不。你不能那样做。只有一个 S3 密钥/密钥。我试图想出一个使用包括 S3 上传的理由,但没有。
那是针对 S3 存储桶,而不是针对你的网站。有两个不同的变量 DISCOURSE_S3_CDN_URL 和 DISCOURSE_CDN_URL。你把它们当作是同一个。你不能为网站使用 CDN,但当你设置该变量时它不起作用的原因是你给它提供了错误的 CDN。
好的,我以为我对自己在做什么有点了解,但现在我觉得我完全迷失了。
那么 S3 CDN 和 CDN 有什么区别?
如果我把注释掉的那两个对调一下,它还能工作吗?
我还注意到我的欢迎横幅的背景图片有一个奇怪的问题,这和这些有关系吗?