Похоже, не удается выполнить запись в корзину S3, настроенную как веб-сайт

#amazon-s3

#amazon-s3

Вопрос:

Я пытаюсь выполнить следующий сценарий:

вызывается настройка корзины share.example.com .

Мой веб-сайт будет записывать в эту корзину динамически (пользовательский контент).

Я хочу, чтобы корзина была веб-сайтом с index.html в качестве документа по умолчанию.

Итак, пользователь что-то делает на моем сайте, затем приложение записывает в

share.example.com/foo/bar1/index.html

Затем я хочу, чтобы пользователь мог просматривать

http://share.example/foo/bar1 / (<— примечание, нет index.html )

Я думал, что это будет тривиально:

  • настройте корзину как веб-сайт с index.html как документ по умолчанию
  • только у меня есть разрешения на запись в корзину
  • настройте политику корзины, чтобы разрешить анонимное чтение
  • создайте CNAME для share.example.com чтобы share.example.com.s3-website-us-east-1.amazonaws.com

Однако проблема.

В приведенной выше конфигурации, когда я пытаюсь выполнить запись, я получаю 405. Если я изменю CNAME, чтобы указать на share.example.com.s3.amazonaws.com , запись завершается успешно, но теперь веб-сайт не будет работать должным образом.

Каково здесь решение?

Спасибо стеку за любую помощь.

Ответ №1:

Хитрость заключалась в том, чтобы не использовать домен vanity для аспекта записи.

Т.е. вместо того, чтобы пытаться выполнить PUT в share.example.com/foo/bar1 , сделайте это, чтобы s3.amazonaws.com/share.example.com/foo/bar1

CNAME для share.example.com затем можно указать на share.example.com.s3-website-us-east-1.amazonaws.com и все это работает.

Комментарии:

1. Спасибо за доработку вашего решения ( 1)!