Привет всем! У меня возникла проблема при попытке загрузить файл в 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, но это не помогло. Кто-нибудь сталкивался с подобной проблемой? Как ее можно решить?
только не забудь заменить localhost на свой домен. еще советую проверить настройки безопасности бакета - может, там что-то блокирует доступ. удачи с загрузкой!
Слушай, а ты пробовал использовать AWS SDK для браузера? Он автоматически разруливает многие проблемы с CORS. Еще вариант - настроить прокси-сервер на бэкенде, который будет пересылать запросы в S3. Так можно обойти ограничения CORS. А вообще, может проще хранить файлы локально? S3 иногда бывает той еще занозой в одном месте…
Проблема скорее всего в некорректной настройке CORS. Проверь настройки бакета в S3 - там должен быть разрешен доступ с твоего домена. Также убедись, что правильно настроил IAM-политики для доступа к бакету. Еще один момент - используй подписанные URL для загрузки, это безопаснее прямого доступа. Если все еще не работает, попробуй отладить запросы в Network-панели браузера, там можно увидеть детали ошибок CORS.