Судя по всему, я потратил миллиарды часов, пытаясь сделать то же самое с файлами MP3 для своего веб-сайта. Ответить:
1)
Не слишком сложная задача. (несмотря на мой газиллион часов)
2)
Не подписывайте URL-адреса из Flash. Используйте размещенный файл PHP, к которому вы можете сделать запрос AJAX для получения подписанных URL-адресов. Для этого структура каталогов корзины S3 должна иметь согласованный шаблон, который делает местоположение файла, учитывая некоторый ввод, программно определяемым.
Не знаю, это процесс, который можно обойти. Подписание URL должно выполняться только на стороне сервера, а не на стороне клиента. Дайте мне знать, если вы хотите увидеть мой пример кода AJAX. Я вставлю это здесь для вас
3)
Процесс подписи использует минимум три переменные для создания подписи - метка времени, местоположение файла (bucket / folder / floder / file), S3 Secret Key. Следовательно, каждый запрос на файл должен иметь отдельную подпись. Подписанные URL-адреса должны иметь очень ограниченный срок действия (скажем, 10 секунд). Пользователи, которые смогут узнать URL-адрес в течение этих 10 секунд, смогут загрузить файл.
Наличие подписей, которые зависят от одной только временной метки, может разрушить (в основном, если не полностью) всю цель наличия подписанных URL.
Чтобы подписать URL-адреса, используйте скрипт ниже. Это работает как обаяние и сэкономило бы мне много часов, если бы я получил его вовремя. Также посмотрите на пункт 5 ниже для дополнительной безопасности.
http://www.richardpeacock.com/blog/2010/07/amazon-aws-s3-query-string-authentication-php
4)
По какой-то причине проигрыватели FLASH не воспроизводят подписанные URL-адреса S3 для файлов MP3. Я думаю (GUESS), что они игнорируют часть URL после прочтения расширения .mp3 в URL. Таким образом, часть строки запроса URL игнорируется плеером и не может прочитать файл. Они воспроизводят общедоступные файлы в моем S3 Bucker, хотя. Я использую Silverlight для своего сайта, и я отчаянно использую для решения FLASH. Если это является причиной, защищенные FLV-файлы не будут воспроизводиться. В этом случае вам придется проксировать весь файл на ваш клиент, используя только URL. Решение, которое я пытаюсь избежать.
5)
для дальнейшей защиты ваших URL-адресов, запутайте их, используя один или несколько метордов в ссылке
ниже. Они очень просты.
http://www.pc -help.org / obscure.htm
6)
Кроме того, ваш подход к безопасности должен заключаться в том, чтобы инициировать воспроизведение файла в браузере до истечения срока действия URL. Период истечения срока действия должен быть достаточно коротким, чтобы предотвратить обнаружение URL-адреса до истечения срока действия, и должен быть достаточно длинным, чтобы обеспечить достаточную задержку начала воспроизведения. Это более или менее суть разумно безопасной потоковой передачи с использованием самораскрывающихся URL-адресов.