DEV: Add tests to S3Helper.ensure_cors and move rules to class (#14767)

In preparation for adding automatic CORS rules creation
for direct S3 uploads, I am adding tests here and moving the
CORS rule definitions into a dedicated class so they are all
in the one place.

There is a problem with ensure_cors! as well -- if there is
already a CORS rule defined (presumably the asset one) then
we do nothing and do not apply the new rule. This means that
the S3BackupStore.ensure_cors method does nothing right now
if the assets rule is already defined, and it will mean the
same for any direct S3 upload rules I add for uppy. We need
to be able to add more rules, not just one.

This is not a problem on our hosting because we define the
rules at an infra level.
This commit is contained in:
Martin Brennan
2021-11-01 08:23:13 +10:00
committed by GitHub
parent a7322aca77
commit a059c7251f
4 changed files with 56 additions and 14 deletions

View File

@ -140,12 +140,7 @@ class S3Helper
end
unless rule
rules = [{
allowed_headers: ["Authorization"],
allowed_methods: ["GET", "HEAD"],
allowed_origins: ["*"],
max_age_seconds: 3000
}] if rules.nil?
rules = [S3CorsRulesets::ASSETS] if rules.nil?
s3_resource.client.put_bucket_cors(
bucket: @s3_bucket_name,