From 08e4af663621cc11cad8d6979057e73290cfa7d1 Mon Sep 17 00:00:00 2001 From: Rafael dos Santos Silva Date: Wed, 29 Apr 2020 19:04:59 -0300 Subject: [PATCH] FEATURE: Add setting to controle the Expect header on S3 calls Some providers don't implement the Expect: 100-continue support, which results in a mismatch in the object signature. With this settings, users can disable the header and use such providers. --- config/discourse_defaults.conf | 1 + config/site_settings.yml | 3 +++ lib/s3_helper.rb | 1 + 3 files changed, 5 insertions(+) diff --git a/config/discourse_defaults.conf b/config/discourse_defaults.conf index 0a4eb66dd70..4adfdca7e94 100644 --- a/config/discourse_defaults.conf +++ b/config/discourse_defaults.conf @@ -196,6 +196,7 @@ s3_secret_access_key = s3_use_iam_profile = s3_cdn_url = s3_endpoint = +s3_http_continue_timeout = ### rate limits apply to all sites max_user_api_reqs_per_minute = 20 diff --git a/config/site_settings.yml b/config/site_settings.yml index 2a0733c75ab..ef0fea49980 100644 --- a/config/site_settings.yml +++ b/config/site_settings.yml @@ -1202,6 +1202,9 @@ files: s3_endpoint: default: "" regex: '^https?:\/\/.+[^\/]$' + s3_http_continue_timeout: + default: 1 + hidden: true s3_cdn_url: default: "" regex: '^https?:\/\/.+[^\/]$' diff --git a/lib/s3_helper.rb b/lib/s3_helper.rb index ccc0da333ac..ef3bc7dee13 100644 --- a/lib/s3_helper.rb +++ b/lib/s3_helper.rb @@ -204,6 +204,7 @@ class S3Helper } opts[:endpoint] = SiteSetting.s3_endpoint if SiteSetting.s3_endpoint.present? + opts[:http_continue_timeout] = SiteSetting.s3_http_continue_timeout unless obj.s3_use_iam_profile opts[:access_key_id] = obj.s3_access_key_id