The complete error in the console is
Access to XMLHttpRequest at (imageurl) from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
I tried setting the CORS Configuration to allow PUT and POST on all domains, but still get the error.
The code on the client side looks like this -
// digitalOcean.js
import AWS from 'aws-sdk'
const regionName = 'nyc3'
const accessKeyId = 'KEYID'
const accessSecretKey = 'SECRETKEY'
export const bucketName = 'BUCKETNAME'
const endpointUrl = `${regionName}.digitaloceanspaces.com`
export const bucketUrl = `https://${bucketName}.${endpointUrl}/`
const spacesEndpoint = new AWS.Endpoint(endpointUrl)
export const s3 = new AWS.S3({
endpoint: spacesEndpoint,
accessKeyId: accessKeyId,
secretAccessKey: accessSecretKey,
})
and
// getItem.jsx
import * as digitalOcean from '../services/digitalOcean'
function uploadFile(file) {
const params = { Body: file, Bucket: digitalOcean.bucketName, Key: file.name }
digitalOcean.s3.putObject(params)
.on('build', request => {
request.httpRequest.headers.Host = digitalOcean.bucketUrl
request.httpRequest.headers['Content-Length'] = file.size
request.httpRequest.headers['Content-Type'] = file.type
request.httpRequest.headers['x-amz-acl'] = 'public-read'
})
.send((err, data) => {
if (err) return alert(JSON.stringify(err))
// ...
})
}
Any idea what the problem might be?

