Tested with backblaze, if I show an image from a public bucket it is correctly shown because it is used on an <img> tag, but when trying to download, the fetch() instruction fails because the previously cached response from the server doesn't have the CORS headers.
The solution seens to be adding a cache busting element on the image forcing the browser to ignore cache.