Amazon S3 Url переписать

Как я могу изменить URL-адрес Amazon S3 от http://bucket.amazons3.com/imagepath.jpg до http://image.mydomain.com/imagepath.jpg

EDIT: В основном, вся причина этого заключается в том, чтобы скрыть URL-адрес amazon s3 от моих пользователей.

Я думал о HttpModule, который перенаправляет запрос с image.mydomain.com на bucket.amazons3.com. Но это потребует, чтобы все запросы обрабатывались моими серверами, а затем перенаправлялись.

Ответ 1

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

Но это фактически удвоит вашу пропускную способность, поскольку вам нужно отправить изображение клиенту, а также получить изображение для S3.

Я не уверен, есть ли какой-либо S3-способ для этого.

Ниже приведен специальный способ Amazon S3, взятый из Amazon S3, запись CNAME

Средний пользователь может зарегистрироваться для Хостинг Amazon S3 и начало загрузки файлы - прием URL по умолчанию структура размещенных файлов:

http://s3.amazonaws.com/your-bucket/some-file.txtЕсли вы планируете использовать S3 для размещения медиа файлы - более конкретно Flash файлы - вы столкнетесь с политикой безопасности доменов в Adobes. Исправление требует сопоставление ваших размещенных файлов S3 для просмотра как будто они от ваш собственный домен - виртуальный хостинг. самый простой и привлекательный метод будет URL-адрес размещенного файла, который это:

http://s3.your-site.com/some-file.txtЧтобы начать работу, создайте ведро на S3 что вы хотите в качестве корня для своего размещенных файлов. В этом примере ваш Ведро S3:

s3.your-site.com Самые важные шаг добавляет соответствующий CNAME запись в настройки DNS.

Название Тип данных s3.your-site.com CNAME s3.amazonaws.com. Ожидайте новых настроек DNS. до 24-48 часов для решения.

Ответ 2

Создание CNAME на s3.amazonaws.com. достаточно. Нет необходимости добавлять имя ведра.

Ответ 3

Чтобы уточнить ответ Tez, Amazon S3 обеспечивает поддержку для отображения пользовательских доменов через Виртуальный хостинг ковшей.

Чтобы сделать эту работу, имя вашего ведра должно быть полным именем хоста, которое вы хотите отобразить.

Итак, используя пример в исходном вопросе, создайте ведро S3 с именем image.mydomain.com и настройте для него CNAME:

image.mydomain.com  CNAME  image.mydomain.com.s3.amazonaws.com.

Ответ 4

Похоже, вы хотите генерировать истекающие ссылки,

http://www.ioncannon.net/s3/21/creating-s3-urls-that-expire-using-php/

Затем вы можете генерировать их "на лету" и предоставлять их в качестве перенаправлений через приложение. Так что кто-то просит, http://images.mydomain.com/img123.jpg

и вы создаете хороший, автоматически устаревший s3-url, http://mydomain.s3.amazonaws.com/T154456.jpg?AWSAccessKeyId=1ESOMESPECIALIDJJAKJ6RA82&Expires=1241372284&Signature=ddfr%2BlkoSEPAL%2BGbMwlMzj6q%2BCY%3D

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

Ответ 5

Ответ Брайя правильный, и у Рамеша и Винсента есть ошибка. Установка CNAME на s3.amazonaws.com привела к ненужным перенаправлениям для меня, как указано в руководстве AWS Virtual Hosting of Buckets здесь.

Ответ 6

Если у вас есть контроль над DNS, почему бы не настроить CNAME?

У нас есть установка cname, указывающая js.our-domain.com, указывающая на один из наших кодеров (как ни странно, файлы javascript), тогда мы просто ссылаемся на js.our-domain.com/jquery.js(например), и мы перейти.

В зависимости от вашего хоста существует несколько способов установки CNAME - поиск в google показывает много

Ответ 7

Как я вижу это, у вас есть два варианта:

  • чтобы сделать перенаправления, как вы заявили, или
  • чтобы сделать запросы на ресурсы из S3, а затем вернуть их пользователям через ваш ответ.

Итак, если пользователь хочет увидеть ресурс http://image.mydomain.com/imagepath.jpg, вы можете внутренне запросить исходный ресурс от http://bucket.amazons3.com/imagepath.jpg, сохраните его локально и верните его запрашивающему пользователю.

Он тратит много трафика, но если это ваше критическое требование, это должен быть путь.