S3;Ведро, которое не является общедоступным, не работает неожиданно - PullRequest
0 голосов
/ 21 сентября 2018

Я работаю над проектом Django.Вчера мои статические файлы не работали внезапно как на локальном компьютере, так и на производстве, как это

enter image description here

, и я обнаружил, что большинство файлов не могут открываться на S3.Это показывает как <AccessDenied>.Я обнаружил, что могу исправить это, изменив политику ведра.Статические файлы теперь работают, но когда я изменил их на общедоступные, там написано

Этот сегмент имеет публичный доступ. Вы предоставили открытый доступ к этому сегменту.Мы настоятельно рекомендуем вам никогда не предоставлять публичный доступ к вашей корзине S3.

Поэтому мне интересно, есть ли лучший способ заставить работать статические файлы.Статические файлы работали, даже если корзина не была общедоступной, но не работала внезапно.Мне интересно, почему.

1 Ответ

0 голосов
/ 21 сентября 2018

Рекомендуемый способ предоставления ссылок на ресурсы в вашей корзине S3 - через подписанные запросы .

Вместо общедоступных ресурсов они должны быть подписаны.Вот фальшивый пример подписанного URL-адреса S3 за дистрибутивом облачного фронта, обратите внимание на дополнительные параметры запроса (AWSAccessKeyId, Signature, Expires): https://kahsfkjshdf838.cloudfront.net/media/images/9fe76f4a7eaf48b3b51b65e4a4348f84.JPG?AWSAccessKeyId=MYAWSACCESSKEY&Signature=somesignaturehulcSCSS%2Bl%2FN3%2FgIc%3D&Expires=1537511748

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...