2010-03-16 1 views
4

Я хочу предложить аудиофайлы для загрузки на моем сайте после того, как пользователь выполнил транзакцию PayPal. Коммерческая сторона уже написана и работает - сайт построен на PHP с Zend Framework.Как предлагать большие аудиофайлы для скачивания после оплаты

Так что я не беру на себя большую плату за хранение и пропускную способность, я бы хотел разместить файлы на сервисе Amazon S3. Тем не менее, я не уверен, подходит ли это для моих требований. Как только транзакция PayPal будет завершена, я хотел бы присвоить пользователю уникальный идентификационный ключ какого-либо типа, отправить их в место, где они вводят ключ, а файл, который они купили, предлагается для загрузки. Затем ключ истечет.

У меня нет проблем с написанием кода для создания, сохранения и удаления ключа. Мой вопрос заключается в следующем: как я могу защитить/скрыть файл, хранящийся на Amazon S3, а затем предложить его для загрузки авторизованному пользователю с URL-адресом, который впоследствии станет недействительным, в то же время передав файл непосредственно из Amazon, а не через мой сервер?

Возможно ли это, или мне нужно другое решение?

ответ

3

У Amazon S3 есть функция «Предварительно подписанный URL», которая позволяет вам создавать URL-адрес для доступа к защищенному от других материалам содержимым с ограничением по времени. См. the Query String Request Authentication Alternative documentation.

+0

Спасибо Andrew - это похоже на правильную вещь. Я рассматриваю возможность расширения класса Zend_Service_Amazon_S3 для предоставления этой функции (создания и подписания URL с датой истечения срока действия). Знаете ли вы, если кто-то еще это сделал? –

+0

Не знаю, боюсь. –

-1

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

+0

К сожалению, S3 не работает так - это статический магазин, без сценариев. У Amazon также есть облачные вычисления (EC2), но это отдельная услуга. –

+0

@ Андрю Айлетт: О, я вижу. Тогда мой ответ не имеет смысла. –