質問

かなり複雑なプロセスを必要とするプロジェクトがあるので、これを行うための最良の方法を確実に知りたいです。 Adobe Flex 3でASP.net C#を使用しています。アプリサーバーはMosso(クラウドサーバー)、ファイルストレージサーバーはAmazon S3です。既存のサイトは、 NoiseTrade.com

で表示できます。

これを行う必要があります:

  • ユーザーにMP3ファイルのアップロードを許可する アルバム「ウィジェット」
  • ユーザーがアップロードした後 アルバム/ウィジェット、私はする必要があります mp3を自動的に圧縮します(他の ダウンロードするユーザー)とアップロード mp3トラックと一緒に圧縮して Amazon S3

実際には既に動作しています(Flexのクライアント側処理を使用)が、Adobeのflash 10" security"により、これは動作しなくなりました。更新。そこで、このサーバー側を実装する必要があります。

これを行うことを考えている方法は次のとおりです。

  • mp3を一時フォルダーに保存する アプリサーバー上
  • アーティストが「公開」するとき作成する そのフォルダー内のファイルのzip C#ライブラリの使用
  • Amazon S3アップロードプロセスを開始します(zipおよびmp3s) ユーザーにメールを送信します 終了(同様に削除 一時フォルダ)

このアプローチで見られる主な問題は、ユーザーが後でトラックを削除または追加した場合、zipファイルを更新する必要がありますが、一時ファイルはもう存在しないことです。

これを行うための最善の方法で途方に暮れているので、アドバイスをいただければ幸いです。

ありがとう!

役に立ちましたか?

解決

zipを更新するが、ユーザーがトラックを追加または削除した場合に一時ファイルを持たないということから、複数のトラック、場合によっては完全なアルバムを含むzipを作成したいのではないかと思われます。これが正しくなく、各zipに1つのmp3を挿入するだけの場合、StingyJackが正しいので、おそらくファイルを圧縮することで小さくするのではなく、(わずかに)大きくすることになります。

私の解釈が正しければ、あなたは幸運です。コマンドラインのzipツールには、既存のzipアーカイブにファイルを追加したり、既存のzipアーカイブからファイルを削除するために使用できるフラグが頻繁にあります。ジップを行うために使用しているライブラリまたは他のメソッドについては述べていませんが、おそらくこの機能も備えていると思われます。

他のヒント

MP3は圧縮されています。なぜそれらを圧縮するのですか?

圧縮ファイル形式をzip圧縮する必要はありません。ファイルサイズを5%削減するか、少しだけやります。 Mp3の性質上、圧縮されている可能性のあるデータのほとんどはすでに圧縮されていません。

DotNetZip は、C#/ ASP.NETからファイルを圧縮できます。 MP3の圧縮率に関する以前のポスターに同意します。 DotNetZipはMP3で圧縮を自動的にスキップし、この理由だけでファイルを保存します。圧縮のほかに、zipをパッケージング/アーカイブコンテナとして使用することは、まだ興味深いかもしれません。

zipファイルを後で変更する(ユーザーがトラックを追加する)場合、S3から.zipファイルを取得して、更新するだけです。 DotNetZipはzipファイルも更新できます。ただし、この場合、S3との間の転送コストを支払う必要があります。

DotNetZipは、これらすべてをメモリ内でのzip処理で実行できますが、多くのMP3と多数の同時ユーザーを含む大規模なアーカイブには適していません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top