2016-04-14 2 views
5

Я использую Node.js для получения подписанного url из aws s3 с помощью putObject из модуля (aws-sdk). Когда я запускаю свой сервер локально, нет проблем с загрузкой на S3. Когда я раскрываю свой код на Heroku и выбрать файл для загрузки, я получаю следующее сообщение об ошибке в моей хромированной консоли:Как настроить ведро aws s3 для приема подписанных URL-адресов на Heroku?

https://torhuw-hrns.s3.amazonaws.com/5f522890-0283-11e6-a696-b1fc6f56c785-T ... Подпись = P7ybw4% 2B2qqNRNKTZbc% 2FMWLhPn1o% 3D & х-АМЗ-аКЛ = общественное чтение записи Не удалось загрузить ресурс: сервер ответил со статусом 403 (Forbidden)

Я использую Node.js (AWS-SDk) метод s3getSignedUrl, чтобы получить подпись и посылающее это в чтобы загрузить мои файлы в мой ведро s3.

В учебнике я последовал за это Direct to S3 File Uploads in Node.js

ответ

1

Дважды проверьте разрешения вашего сегмента S3 и конфигурации CORS. Вы должны убедиться, что политика позволяет «s3: PutObject» в вашем ковше, и вы должны убедиться, что CORSRule разрешает PUT/POST и позволяет домен вашего приложения.

Чтобы отладить эти вещи, вы можете рассмотреть возможность временного ослабления всех разрешений на «широко открытые» и проверки того, что он работает, когда он полностью неограничен.

+0

К «настежь» Я имею в виду такие вещи, как предоставление разрешения AmazonS3FullAccess, установив AllowedOrigin из * в конфигурации CORS и т.д. –

0

Я решил это, создав новое ведро, обновляющее конфигурацию CORS, создав новую access_key_ID и access_secret_access_key и обновляя переменные среды heroku (я также выбрал ведро для того же региона, что и мое приложение heroku, но не уверен, было ли это решение). Конфигурация CORS была использована:

<?xml version="1.0" encoding="UTF-8"?> 
 
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
 
    <CORSRule> 
 
     <AllowedOrigin>*</AllowedOrigin> 
 
     <AllowedMethod>GET</AllowedMethod> 
 
     <AllowedMethod>POST</AllowedMethod> 
 
     <AllowedMethod>PUT</AllowedMethod> 
 
     <AllowedHeader>*</AllowedHeader> 
 
    </CORSRule> 
 
</CORSConfiguration>

Смежные вопросы