アプリ エンジン データ ストアに 30 秒のユーザー mp3 レコーディングを BLOB として保存しようとしています。ただし、この機能を有効にし (App Engine にはアップロードごとに 1 MB の制限があります)、コストを抑えるために、アップロード前にファイルを圧縮し、要求されるたびにファイルを解凍したいと考えています。これをどのように達成することをお勧めしますか (タスクキューを介してバックグラウンドで発生する可能性がありますが、効率的なソリューションは常に優れています)
私自身のテストと調査に基づいて、これを達成するための 2 つのアプローチが考えられます。
- ズリブ
そのためには、While ループを使用して、一度に特定の数のブロックを圧縮する必要があります。ただし、App Engine ではファイル システムへの書き込みが許可されていません。これを達成するために一時ファイルを使用することを考えましたが、一時ファイルからコンテンツを解凍しようとしたときに、このアプローチではうまくいきませんでした
- Gzip
Web の周りを読むと、アプリ エンジンの URL フェッチ関数は、既に gzip されたコンテンツを要求し、それを解凍しているようです。関数がコンテンツを圧縮解除するのを停止して、gzip 形式でデータストアに配置し、オンデマンドでユーザーに再生する必要があるときに圧縮解除できるようにする方法はありますか?
これを達成するためにzlibやgzip、またはその他のソリューションを使用することを提案する方法を教えてください。ありがとう