Intereting Posts
facebook graph api возвращает только имя и идентификатор для некоторых веб-сайтов Удалите файл URL окончания (.php, .js, .asp и т. Д.). Добавить элемент в поле выбора с помощью коллекции «Красноречивый» Ошибка Memcache: Ошибка строки чтения из потока (0) Массив Календарь бронирования Прибытие и отъезд Отладка PHP с точками прерывания – примеры из практики, примеры ..? Вызов контроллера laravel через командную строку Ссылка: Почему мои «специальные» символы Unicode кодируются странно, используя json_encode? Как создать флажок «Запомнить меня» с помощью библиотеки сеансов Codeigniter? Разница между использованием памяти memory_get_peak_usage и фактическим использованием php-процесса Как добавить php-содержимое или переменную в поле предупреждения javascript ?! javascript, php, alertbox Функция Php flush () Строка форматирования для атрибута xml в php Найти и заменить в файле Htaccess Negative Lookahead Issue

Как создать одноразовую ссылку для скачивания с Amazon S3?

Я хочу создать одноразовую ссылку для загрузки в файл amazon s3. Эта ссылка истекает после загрузки файла.

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

Мне нужен сценарий: у меня есть сайт загрузки файлов, где пользователи платят за файл. Я хочу, чтобы пользователь мог только загрузить файл один раз с веб-сайта (и Amazon s3), я также не хочу, чтобы пользователь мог поделиться ссылкой прямого скачивания с другими людьми.

Если это невозможно, я задаюсь вопросом, эффективнее ли это ограничивать его IP-адресом или Cookie, если это возможно?

Невозможно сказать S3, чтобы ссылка использовалась только один раз. Но вы можете создать ссылку, которая может использоваться только до определенного времени. То, что я делаю, перенаправляет запросчика на ссылку S3, срок действия которой истекает через несколько минут, поэтому он или она не успевают поделиться им. Вы можете сделать это время истечения очень короткое, даже несколько секунд, если у их браузера есть время, чтобы получить ответ перенаправления и следовать ему.

Вы можете написать услугу «одноразовый генератор URL» (либо в форме веб-сайта, либо в API-интерфейсе отдыха) и использовать функцию AWS-объединения для достижения этой цели.

Рассмотрим следующую процедуру:

  • Когда пользователь хочет URL-адрес в один раз, он отправляет запрос в службу «один раз-генератор URL-адресов».
  • Ваша служба генерирует «одноразовый URL-адрес» и возвращает его пользователю. URL-адрес – это взаимно однозначное сопоставление с ресурсом S3, который хочет пользователь.
  • Когда пользователь делает запросы на «одноразовый URL-адрес», служба создает временного пользователя с использованием функции объединения AWS и генерирует назначенный им S3-адрес от имени временного пользователя.
  • Служба отправляет ответ обратно пользователю, перенаправляя назначенный URL-адрес.
  • Пользователь выполняет перенаправление и начинает загрузку файла.
  • Затем служба удаляет временного пользователя. (Или истекает срок его действия.)

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateCFSignatureCodeAndExamples.html

Используйте подписанный URL. Только этот пользователь может использовать этот URL. Он также использует AWS SDK