Получить URL статического веб-сайта AWS S3 bucket программным способом с помощью Java SDK v2
В документации по адресу https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteEndpoints.html говорится, что существуют две основные формы, основанные на регионе:
bucket-name.s3-website-region.amazonaws.com
bucket-name.s3-website.region.amazonaws.com
(Обратите внимание на черту против точки перед region
.) Список на https://docs.aws.amazon.com/general/latest/gr/rande.html это подтверждает.
Я использую AWS Java SDK v2. Я создаю некоторые ведра программно, а другие я просто использую S3Client.getBucketWebsite()
чтобы получить информацию о веб-сайте ведра. Но GetBucketWebsiteResponse
похоже, ничего с этим не связано.
Я бы предпочел не жестко кодировать список областей в моем коде, сопоставленных с конкретным стилем URL, который они используют. Есть ли способ получить статический URL-адрес веб-сайта для корзины, используя AWS SDK?
Обратите внимание, что мне известен отдельный вопрос. Как получить URL-адрес конечной точки веб-сайта AWS S3 через API? , но этот вопрос касается конечных точек API RESTful, а не статического хостинга веб-сайтов, как указано в ответе /questions/12428527/kak-poluchit-url-adres-konechnoj-tochki-veb-sajta-aws-s3-cherez-api/12428533#12428533 и его комментариях.
(Интересно из моих экспериментов, одна область, которая была задокументирована для использования формы bucket-name.s3-website-region.amazonaws.com
был также доступен с помощью формы bucket-name.s3-website.region.amazonaws.com
Возможно, AWS пытается стандартизировать форму точек. Тем не менее, было бы лучше снять все сомнения и положиться на SDK для какой-либо предпочтительной формы, если только нет официальной документации, гарантирующей, что точечная форма будет работать для всех регионов в будущем.)
2 ответа
На данный момент вы должны использовать S3Client.getBucketWebsite()
а также S3Client.getBucketLocation()
вместе с сопоставлением регионов для подготовки статического URL-адреса веб-сайта AWS S3, поскольку документация AWS официально не объявила о том, что обе записи (. и -) теперь могут работать взаимозаменяемо.
aws использует "." обозначение официально, так что мне решать ....
URL-адреса виртуального хостинга Amazon S3 используют следующий формат.
https://bucket-name.s3.Region.amazonaws.com/keyname
для справки:https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-bucket-intro.html