Как подать ссылку на аудио в интернет-магазине Gae - PullRequest
2 голосов
/ 28 февраля 2012

У меня есть аудио-файл, который хранится в виде больших двоичных объектов в интернет-магазине Google App Engine.Я не уверен, как получить хороший URL для передачи клиентской части, чтобы играть в BLOB.Я хотел бы сделать что-то вроде библиотеки изображений.

image.get_serving_url()

Но нет аудио модуля.Итак, есть ли хороший способ получить URL-адрес от BLOB-объекта для воспроизведения аудио или, что еще лучше, с любого носителя?

Ответы [ 2 ]

2 голосов
/ 29 февраля 2012

Рендеринг изображения осуществляется браузером.То же самое для аудио, браузер решает, что делать с ресурсом, на который вы указываете.Для этого вам нужно добавить правильный заголовок mime type [1].Если при загрузке файла уже был задан правильный тип MIME, вам не нужно делать это вручную.

Что касается обслуживания BLOB-объектов, вам необходимо создать обработчик загрузки хранилища BLOB-объектов: http://code.google.com/appengine/docs/python/tools/webapp/blobstorehandlers.html#BlobstoreDownloadHandler

[1] http://en.wikipedia.org/wiki/Internet_media_type

0 голосов
/ 02 марта 2012

Я думаю, что вы ищете что-то вроде того, как работает S3, когда загружаемые вами двоичные объекты автоматически получают URL-адрес, который затем можно перенаправить непосредственно в браузер. Blobstore был разработан, чтобы в первую очередь дать разработчикам контроль над их URL-адресами и детальный контроль над доступом к BLOB-объектам. У него нет возможности просто предоставить URL-адрес на основе, скажем, ссылки BLOB-объекта. Я думаю, что ответ Шуппе правильный в описании того, что вам нужно сделать.

Если вы заинтересованы в простой передаче большого двоичного объекта пользователю без какой-либо аутентификации или ограничений, написать обработчик не так сложно. Тот, что содержится в документации, на которую ссылается schuppe, будет работать нормально, однако, будьте осторожны, поскольку он может открыть ваше приложение для определенных типов атак DOS. Кроме того, если вы делаете это в соответствии с документацией, любой, у кого есть одна из ваших строк ссылок на BLOB-объекты, может получить доступ к любому BLOB-объекту во всем приложении, независимо от того, хотите вы этого или нет. Поэтому вы должны построить вокруг него дополнительный контроль доступа.

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

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