Я хочу размещать ресурсы в Интернете. Я создал общественный ведро с хостинг веб-сайтов включен.
Я обнаружил несколько типов URL-адресов, поддерживаемых AWS:
# HTTP + HTTPS
https://<bucket>.s3.amazonaws.com/<file>
# HTTP only!
http://<bucket>.s3-website-<region>.amazonaws.com/<file>
# HTTP + HTTPS
# Will be removed
# See https://forums.aws.amazon.com/ann.jspa?annID=6776
https://s3.<region>.amazonaws.com/<bucket>/<file>
Почему существует так много форматов и какой из них предпочтительнее?
С моей точки зрения, первый URL-адрес проще и поддерживает HTTPS, поэтому он лучше IMO, но есть ли недостатки в его использовании?
Первый и третий - это URL REST а второй - URL веб-сайта - они могут обслуживаться из одного ведра, но ведут себя немного по-разному и имеют разное предназначение. Видеть Ключевые различия между веб-сайтом Amazon и конечной точкой REST API.
Я не верю, что 3-я форма будет удалена в ближайшее время (AWS очень консервативно отказывается от существующих вещей), но это не рекомендуемый способ, потому что на самом деле он в некоторых случаях перенаправляет на первую форму. Если вы напрямую используете первую форму, вы избавляетесь от перенаправления.
Надеюсь, это поможет :)
Да, если вы хотите сделать что-то в разных регионах, сложно управлять URL-адресом с помощью кода, поэтому выберите что-то, что легко кодировать. Всякий раз, когда вы хотите сослаться на ведро s3 другого региона, вам не нужно создавать другой URL. Поскольку URL-адрес на основе пути будет удален, я предпочитаю URL-адрес, который также будет содержать регион. Предположим случай
url = http://<bucket>.s3-website-<region>.amazonaws.com/
по этому URL-адресу я могу ссылаться на сегменты в разных регионах, что полезно, если вам нужен аналогичный URL-адрес сегмента в разных регионах. Также это зависит от вариантов использования.