Domanda

Ho un progetto che richiede un processo abbastanza complicato e voglio essere sicuro di conoscere il modo migliore per farlo. Sto usando ASP.net C # con Adobe Flex 3. L'app server è Mosso (server cloud) e il server di archiviazione file è Amazon S3. Il sito esistente può essere visualizzato su NoiseTrade.com

Devo fare questo:

  • Consenti agli utenti di caricare file MP3 su un album " widget "
  • Dopo che l'utente ha caricato il proprio album / widget, ho bisogno di comprime automaticamente l'mp3 (per altro utenti da scaricare) e caricare il file zip insieme alle tracce mp3 per Amazon S3

In realtà ho già funzionato (utilizzando l'elaborazione lato client in Flex) ma questo non funziona più a causa del flash 10 "security" di Adobe. aggiornare. Quindi ora devo implementare questo lato server.

Il modo in cui sto pensando di farlo è:

  • Conserva l'mp3 in una cartella temporanea sul server delle app
  • Quando l'artista " pubblica " creare un zip dei file in quella cartella usando una libreria c #
  • Avvia il processo di caricamento di Amazon S3 (zip e mp3s) e invia un'email all'utente quando lo è finito (oltre a cancellare il file cartella temporanea)

Il problema principale che vedo con questo approccio è che se un utente elimina o aggiunge una traccia in seguito, dovrò aggiornare il file zip ma i file temporanei non esisteranno più.

Sono in perdita nel modo migliore per farlo e apprezzerei qualsiasi consiglio tu possa avere.

Grazie!

È stato utile?

Soluzione

L'idea di aggiornare lo zip ma di non avere i file temporanei se l'utente aggiunge o rimuove una traccia mi porta a sospettare che tu voglia creare zip contenenti più tracce, possibilmente album completi. Se questo non è corretto e stai solo mettendo un singolo mp3 in ogni zip, allora StingyJack ha ragione e probabilmente finirai per rendere il file (leggermente) più grande piuttosto che più piccolo comprimendolo.

Se la mia interpretazione è corretta, allora sei fortunato. Gli strumenti zip della riga di comando hanno spesso flag che possono essere utilizzati per aggiungere o eliminare file da un archivio zip esistente. Non hai dichiarato quale libreria o altro metodo stai utilizzando per eseguire la compressione, ma mi aspetto che probabilmente abbia anche questa capacità.

Altri suggerimenti

Gli MP3 sono compressi. Perché preoccuparsi di comprimerli?

Direi che non è necessario comprimere un formato di file compresso, sei solo gong per ottenere una riduzione del cinque percento nella dimensione del file, dare o prendere un po '. Gli Mp3 non si comprimono davvero per loro natura, hanno già compresso la maggior parte dei dati possibili.

DotNetZip può comprimere i file da C # / ASP.NET. Concordo con i precedenti poster riguardanti la compressibilità degli MP3. DotNetZip salterà automaticamente la compressione su MP3 e memorizzerà il file, solo per questo motivo. Potrebbe essere comunque interessante utilizzare una zip come contenitore di imballaggio / archivio, a parte la compressione.

Se in seguito cambi il file zip (l'utente aggiunge una traccia), puoi prendere il file .zip da S3 e aggiornarlo. DotNetZip può anche aggiornare i file zip. Ma in questo caso dovresti pagare i costi di trasferimento da e verso S3.

DotNetZip può fare tutto questo con la gestione in memoria delle zip, anche se ciò potrebbe non essere fattibile per archivi di grandi dimensioni con molti MP3 e molti utenti simultanei.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top