1

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

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

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

私は実際にこれを既に動作させています (Flex でクライアント側の処理を使用しています) が、Adobe の Flash 10 の「セキュリティ」アップデートにより、これは動作しなくなりました。したがって、このサーバー側を実装する必要があります。

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

  • mp3 をアプリ サーバーの一時フォルダーに保存します。
  • アーティストが「公開」すると、ac# ライブラリを使用してそのフォルダー内のファイルの zip を作成します
  • Amazon S3 アップロード プロセス (zip および mp3s) を開始し、完了したらユーザーにメールを送信します (一時フォルダーを削除するだけでなく)。

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

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

ありがとう!

4

4 に答える 4

1

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

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

于 2008-11-10T17:29:09.340 に答える
0

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

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

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

于 2009-01-04T04:47:33.933 に答える
0

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

于 2008-11-10T17:22:20.710 に答える
0

圧縮されたファイル形式を zip する必要はないと思います。ファイルサイズを 5% 削減するだけで済みます。MP3 はその性質上圧縮されておらず、可能なデータのほとんどがすでに圧縮されています。

于 2008-11-10T17:23:50.893 に答える