pfaffman
(Jay Pfaffman)
1
在一个原本可以正常进行备份和上传到 Google 存储桶的网站上,备份页面现在显示:
无法访问备份存储:您提供的标头或查询请求了一个未实现的功能。
我原本以为这可能是存储桶权限问题(但这不太合理,因为相同的配置几周前还能正常工作),但重新阅读该消息后,感觉似乎是 Discourse 试图执行某种未实现的操作。(这也显得有点牵强)。
向 Google 存储桶(尽管是另一个)进行 S3 上传完全正常。有一个运行 2.4.0.beta9 的生产站点和一个运行 2.4.0.beta10 的测试站点(我刚刚对测试站点进行了另一次升级)。
这是一个标准的两容器安装,仅包含标准插件,S3 设置通过 .yml 文件中的 env: 进行配置。编辑:我从 yml 中删除了这些 ENV 设置并重新构建(destroy 和 start 操作并未移除它们),但问题仍然存在。
我没有看到任何明显与我相关的提交。
编辑:还有另一个运行 2.4.0.beta8 的标准安装实例,使用相同的设置,它运行正常,因此看起来在 beta8 和 beta9 之间发生了某些变化。这确实看起来像是一个
。@gerhard 这是否可能与您的备份更改有关?
附言:我检查了一个使用 DigitalOcean Spaces 的站点,其备份功能正常。
2 个赞
gerhard
(Gerhard Schlager)
2
您是否一访问 /admin/backups 就遇到错误?我最近没有更改该区域的任何内容,但我们在 beta8 到 beta10 之间将 aws-s3 gem 从版本 1.36.1 更新到了 1.60.1。这可能导致它不再与 Google 存储桶兼容。您可以在 CHANGELOG 中查找原因。您可以尝试使用不同版本的 gem 来缩小问题范围。
3 个赞
pfaffman
(Jay Pfaffman)
3
是的。
真糟糕。
真头疼。我会联系一位谷歌的工程师(他可能也不清楚),看看还能找到什么其他线索。
非常感谢。
3 个赞
pfaffman
(Jay Pfaffman)
4
所以,通过进入容器并编辑 Gemfile,将
gem 'aws-sdk-s3', require: false
更改为
gem 'aws-sdk-s3', '1.51.0', require: false
然后执行
bundle install --no-deployment
sv restart unicorn
来测试是否生效。通过二分法测试不同版本后发现,1.51.0 是最后一个正常工作的版本。因此,问题始于 1.52.0 版本中的“功能:在 SelectObjectContent 中添加对指定扫描范围的对象部分进行扫描的支持”。
我不确定接下来该怎么做。我想我会在 GitHub - aws/aws-sdk-ruby: The official AWS SDK for Ruby · GitHub 上提交一个 issue,但我不确定他们是否会在意,对吧?所以也许应该向 Google 提交一个工单?
目前,Discourse 在 Google Buckets 上的文件上传功能仍然正常,只是备份功能失效了。
5 个赞
pfaffman
(Jay Pfaffman)
6
pfaffman
(Jay Pfaffman)
关闭
7
此主题在上次回复后 30 天自动关闭。不再允许回复。