S3错误,更新到2.9.0.beta1时

大家好,

搜索了一下,没有找到相关内容。
我们在本地的开发和生产系统上都运行着 Discourse 2.8.0beta11,目前一切正常。

现在我尝试将我们的开发实例更新到 2.9.0beta1,在构建容器的过程中遇到了以下错误:

...
I, [2022-02-15T09:19:20.137108 #1] INFO -- : cd /var/www/discourse && sudo -E -u discourse bundle exec rake s3:upload_assets
rake aborted!
Aws::S3::Errors::MissingContentLength: You must provide the Content-Length HTTP header.
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/seahorse/client/plugins/raise_response_errors.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.96.1/lib/aws-sdk-s3/plugins/sse_cpk.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.96.1/lib/aws-sdk-s3/plugins/dualstack.rb:36:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.96.1/lib/aws-sdk-s3/plugins/accelerate.rb:50:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/aws-sdk-core/plugins/jsonvalue_converter.rb:22:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/aws-sdk-core/plugins/idempotency_token.rb:19:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/aws-sdk-core/plugins/param_converter.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/seahorse/client/plugins/request_callback.rb:71:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/aws-sdk-core/plugins/response_paging.rb:12:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/seahorse/client/plugins/response_target.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/seahorse/client/request.rb:72:in `send_request'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.96.1/lib/aws-sdk-s3/client.rb:11274:in `put_object'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.96.1/lib/aws-sdk-s3/object.rb:1329:in `put'
/var/www/discourse/lib/s3_helper.rb:74:in `upload'
/var/www/discourse/lib/tasks/s3.rake:37:in `block in upload'
/var/www/discourse/lib/tasks/s3.rake:36:in `open'
/var/www/discourse/lib/tasks/s3.rake:36:in `upload'
/var/www/discourse/lib/tasks/s3.rake:192:in `block (2 levels) in <main>'
/var/www/discourse/lib/tasks/s3.rake:191:in `each'
/var/www/discourse/lib/tasks/s3.rake:191:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => s3:upload_assets
(See full trace by running task with --trace)
I, [2022-02-15T09:19:30.893646 #1] INFO -- : Installing CORS rules...
skipping
Skipping: assets/browser-detect-16ca87077aead9f656700e192992122d3a7eee8c1bb76da992127945464d4777.js
Skipping: assets/browser-detect-16ca87077aead9f656700e192992122d3a7eee8c1bb76da992127945464d4777.br.js
Skipping: assets/browser-detect-16ca87077aead9f656700e192992122d3a7eee8c1bb76da992127945464d4777.gz.js
Skipping: assets/browser-detect-16ca87077aead9f656700e192992122d3a7eee8c1bb76da992127945464d4777.js.map
Skipping: assets/browser-update-eec13eb6f8386f18f10b5dd6ebb7a3598d28421bb796e539b91a7e4a4c5d4c08.js
Skipping: assets/browser-update-eec13eb6f8386f18f10b5dd6ebb7a3598d28421bb796e539b91a7e4a4c5d4c08.br.js
Skipping: assets/browser-update-eec13eb6f8386f18f10b5dd6ebb7a3598d28421bb796e539b91a7e4a4c5d4c08.gz.js
Skipping: assets/browser-update-eec13eb6f8386f18f10b5dd6ebb7a3598d28421bb796e539b91a7e4a4c5d4c08.js.map
...

这里的 Aws::S3::Errors::MissingContentLength: You must provide the Content-Length HTTP header. 是什么意思?
我们的 S3 是 MinIO,对我们来说工作得很完美。

感谢您的帮助。

您是否已按照将对象存储用于上传(S3 和克隆) 中的说明配置了 MinIO?如果配置了,可能是 S3 gem 的更新或 MinIO 的更新破坏了兼容性。

由于我们仅针对真正的 S3 进行构建,因此可能需要将此问题提交给 MinIO。

1 个赞

Guess the base image of discourse updated the ruby gem version from aws-cdk-s3 from 1.90 to 1.96… Need to check if there is some breaking changes…

The settings you linked are fine, as I wrote. The build of version 2.8.0beta11 is working fine… So no update until I found the issue or I am screwed :smiley:

1 个赞

HI @Falco,我已从 MiniIO 迁移,它又能正常工作了!感谢你的帮助!

1 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.