Проблема с загрузкой файлов в Amazon S3 через JavaScript: отсутствует заголовок 'Access-Control-Allow-Origin'

Привет всем! У меня возникла проблема при попытке загрузить файл в Amazon S3 с помощью JavaScript. Вот часть моего кода:

var хранилище = new AWS.S3({params: {Bucket: 'мои.изображения'}});
var файл = документ.файл;
var параметры = {Key: файл.имя, ContentType: файл.тип, Body: файл};

хранилище.загрузить(параметры, function (ошибка, данные) {
  var результат = ошибка ? 'ОШИБКА!' : 'ЗАГРУЖЕНО.';
  console.log(результат);
  console.log(ошибка);
});

Но я получаю ошибку:

XMLHttpRequest не может загрузить https://s3.amazonaws.com/мой-бакет/картинка.jpg. 
Отсутствует заголовок 'Access-Control-Allow-Origin' в запрошенном ресурсе. 
Поэтому доступ с 'http://127.0.0.1:5000' не разрешен.

Я настроил CORS, но это не помогло. Кто-нибудь сталкивался с подобной проблемой? Как ее можно решить?

слушай, я недавно столкнулся с похожей проблемой. у меня помогло добавление специальных заголовков в политику CORS для бакета. вот пример:

{
“AllowedHeaders”: [
“*”
],
“AllowedMethods”: [
“PUT”, “POST”, “DELETE”
],
“AllowedOrigins”: [
http://localhost:5000
],
“ExposeHeaders”:
}

только не забудь заменить localhost на свой домен. еще советую проверить настройки безопасности бакета - может, там что-то блокирует доступ. удачи с загрузкой!

Слушай, а ты пробовал использовать AWS SDK для браузера? Он автоматически разруливает многие проблемы с CORS. Еще вариант - настроить прокси-сервер на бэкенде, который будет пересылать запросы в S3. Так можно обойти ограничения CORS. А вообще, может проще хранить файлы локально? S3 иногда бывает той еще занозой в одном месте…

Проблема скорее всего в некорректной настройке CORS. Проверь настройки бакета в S3 - там должен быть разрешен доступ с твоего домена. Также убедись, что правильно настроил IAM-политики для доступа к бакету. Еще один момент - используй подписанные URL для загрузки, это безопаснее прямого доступа. Если все еще не работает, попробуй отладить запросы в Network-панели браузера, там можно увидеть детали ошибок CORS.