2012-02-28 11 views
2

私は、Google Apps Engineのブロブストアにブロブとして保存されたオーディオファイルを持っています。私はどのようにBLOBを再生するためにクライアント側に渡す良いURLを取得するか分からない。私は画像ライブラリのようなことをしたいと思います。jae blobstoreのオーディオにURLを提供する方法

image.get_serving_url() 

ただし、オーディオモジュールはありません。だから、ブロブからオーディオを再生するためのURLを取得する良い方法はありますか?

答えて

2

画像のレンダリングはブラウザで行います。オーディオでも同じですが、ブラウザーはあなたが指しているリソースをどうするかを決めます。そのためには、正しいMIMEタイプ[1]ヘッダーを追加する必要があります。アップロード時にファイルのMIMEタイプが正しく設定されている場合は、手動でこれを行う必要はありません。

ブロブを提供するために、あなたはブロブストアのダウンロードハンドラを作成する必要があるとして: http://code.google.com/appengine/docs/python/tools/webapp/blobstorehandlers.html#BlobstoreDownloadHandler

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

+0

フィードバックありがとうございます!ファイルは、アップロード時に正しいMIMEタイプが設定されています。私はユーザーが実際に何かをダウンロードしないようにします。私は彼らにオーディオを再生できるようにしたいと思います。私はblobから正しいURLを提供し、html5オーディオタグ経由で再生できることを期待していました。 – Justin

+0

オーディオタグで再生したものは、まだどこかから配信する必要があります。あなたは、ダウンロード・ハンドラをダウンロードしておらず、ローカル・ディスクの意味で安全に扱うことになります。 – schuppe

0

を、私は、あなたが探していることはS3がどのように動作するかのようなものだと思いますアップロードするブロブには自動的にURLが与えられ、ブラウザに直接ドロップすることができます。 Blobstoreは主に開発者がURLを制御し、ブロブへのアクセスをきめ細かく制御できるように設計されています。これには、たとえばBLOBリファレンスに基づいたURLを単に提供する機能はありません。私はschuppeの答えはあなたがする必要があることを説明するのは正しいと思います。

ユーザーにブロブを何らかの認証や制限なしで単に提供することに興味がある場合は、ハンドラを書くのはそれほど難しいことではありません。 schuppeがあなたを参照したドキュメントにあるものはOKですが、特定のタイプのDOS攻撃まであなたのアプリを開くことができるので注意してください。また、ドキュメンテーションとしてそれを行う場合、あなたのBLOBリファレンス文字列のいずれかを持っている人は、あなたがそうであってもいなくても、あなたのアプリケーション全体を通してBLOBにアクセスできます。したがって、追加のアクセス制御を構築する必要があります。

もちろん、データへのアクセスを制御することに関心がなければ、そのソリューションは簡単であり、うまくいくでしょう。

+0

これは素晴らしい情報です。私はちょうど学んで、いくつかのサンドボックステストをしているので、セキュリティについてあまり心配していません。しかし、それは間違いなく心配です。ありがとう。 – Justin

関連する問題