FIX: Allow S3Helper.ensure_cors! to apply more than one rule and cache rules (PR #14783)

The ensure_cors! function needs to be able to add CORS rules for the S3 bucket for 3 things now:

  • assets
  • direct S3 backups
  • direct S3 uploads

As it is, only one rule can be applied, which is generally the assets rule as it is called first. This commit changes the ensure_cors! method to be able to apply new rules as well as the existing ones.

Also in this commit we are calling ensure_cors! when creating presigned PUT and multipart uploads when uploading direct to S3, so the rules definitely exist to avoid errors in the process.

GitHub

The title of this pull request changed from “FIX: Allow S3Helper.ensure_cors! to apply more than one rule” to "FIX: Allow S3Helper.ensure_cors! to apply more than one rule and cache rules

Just a general question but I’m trying to understand why don’t we add CORS rules in a one-off job instead of having to check every time interact with the bucket. From what I can tell, CORS rules are set at the bucket level which means they don’t disappear once it has been set.