Ошибка прямой загрузки Rails 5.2 Active Storage: отсутствует заголовок CORS «Access-Control-Allow-Origin»

Я пробую использовать Rail 5.2.0.rc1 Active Storage, используя включенную в него библиотеку JavaScript для загрузки документов PDF непосредственно с клиента в облако. Но при отправке формы я получаю ошибку браузера как в Firefox, так и в Chrome:

Cross-Origin Request Blocked... (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

Заголовки устанавливаются таким образом this.xhr.setRequestHeader ... в activestorage.js и не кажутся настраиваемыми: https://github.com/rails/rails/blob/master/activestorage/app/javascript/activestorage/blob_record.js

какие-нибудь предложения?


person KeithP    schedule 20.03.2018    source источник


Ответы (1)


Попробуйте установить разрешение CORS для корзины S3 следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
person Tom Rossi    schedule 20.03.2018
comment
Спасибо, да, это решает. Следующая проблема, хотя 403 запрещено, возвращается, что, конечно же, исчезнет, ​​если я предоставлю полный публичный доступ к корзине S3. Но, надеюсь, нам не придется этого делать? - person KeithP; 21.03.2018
comment
Вы уверены, что срок действия URL-адреса не истек? - person Tom Rossi; 21.03.2018
comment
Если бы это было так! Нет, похоже, речь идет о предоставлении правильных разрешений для корзины в AWS. Чтобы исследовать, сохраните политику корзины, предоставляющую полный доступ к учетной записи (действие: s3: *), а затем войдите в систему под этой учетной записью. Но как этот пользователь я получаю отказ в доступе при попытке загрузить только что загруженный файл! - person KeithP; 21.03.2018
comment
Все шаги, которые мы предприняли для прямой загрузки, приведены здесь: keithpblog.org / post / active-storage-on-amazon-s3 - person KeithP; 22.03.2018
comment
Ответ все еще работает на Rails 5.2.4 при локальной разработке на моей машине (localhost: 3000). - person rrrrrraul; 27.01.2020