О подписанных URL в Amazon S3 - PullRequest
1 голос
/ 14 октября 2011

Итак, я читал о подписанных URL-адресах и некоторых их преимуществах.Особенно часть о горячих ссылках.Наше приложение не позволяет пользователям вставлять медиа (фото, видео, аудио) с нашего сайта.Так что подписанный URL выглядит как правильное направление.В основном для предотвращения хотлинкинга.

Итак, теперь я знаю свои требования.У меня есть несколько вопросов.

  1. Означает ли это, что мне нужно добавить политику в мое ведро, отказав в доступе для чтения и записи к любому из файлов или папок в ящике?
  2. Нужно ли создавать подписанные URL-адреса для каждого посещения страницы?Допустим, 100 пользователей посещают одну и ту же страницу, где можно воспроизвести песню.Означает ли это, что мне нужно создать 100 подписанных URL-адресов?
  3. Создание подписанных URL-адресов S3 бесплатно?

Касаясь пункта № 2.Является ли обычной практикой для Amazon S3 создание нескольких подписанных URL-адресов?Я имею в виду, что произойдет, если 1000 пользователей в конечном итоге перейдут на одну и ту же страницу песни ..

Ваши мысли?

СПРАВКА:

Для всех, кто интересуетсякак я смог генерировать подписанные URL-адреса.На основе https://github.com/appoxy/aws драгоценного камня и документов в http://rubydoc.info/gems/aws/2.4.5/frames:

s3 = Aws::S3.new(APP_CONFIG['amazon_access_key_id'], APP_CONFIG['amazon_secret_access_key'])
bucket_gen = Aws::S3Generator::Bucket.create(s3, 'bucket_name')
signed_url = bucket_gen.get(URI.unescape(URI.parse(URI.escape('http://bucket_name.s3.amazonaws.com/uploads/foobar.mp3')).path[1..-1]), 1.hour)

1 Ответ

3 голосов
/ 19 октября 2011
  1. По умолчанию ваше ведро будет установлено как личное. Когда вы загружаете файлы на S3, вы можете установить ACL (права доступа) - в вашем случае вы захотите убедиться, что файлы являются личными.

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

  3. Да, генерация URL-адресов бесплатна. Они генерируются на клиенте и не касаются S3. Я предполагаю, что есть время / обработка, но я создал страницы с сотнями URL, которые генерируются при каждом посещении, и не заметил никаких проблем с производительностью.

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