Pergunta

Eu tenho um projeto que requer um processo bastante complicado e eu quero ter certeza que eu sei a melhor maneira de fazer isso. Estou usando ASP.net C # com Adobe Flex 3. O servidor de aplicativo é Mosso (servidor de nuvem) eo servidor de armazenamento de arquivos é Amazon S3. O site existente pode ser visto em NoiseTrade.com

Eu preciso fazer isso:

  • Permitir aos usuários fazer upload de arquivos MP3 para um álbum "Widget"
  • Depois que o usuário submeteu sua album / widget, eu preciso zip automaticamente o mp3 (para outra usuários para download) e fazer o upload do zip juntamente com as faixas MP3 para Amazon S3

Na verdade, tenho este já está trabalhando (usando o processamento do lado do cliente no Flex), mas isso não funciona por causa do flash de 10 atualização "segurança" da Adobe. Então agora eu preciso para implementar esta do lado do servidor.

A maneira que eu estou pensando em fazer isso é:

  • Guarde o mp3 em uma pasta temporária no servidor de aplicativo
  • Quando o artista "publica" criar um zip dos arquivos nessa pasta usando uma biblioteca c #
  • Inicie o amazon processo de upload S3 (zip e mp3s) e e-mail do usuário quando ele é acabado (bem como a exclusão pasta temporária)

O grande problema que vejo com esta abordagem é que, se um utilizador elimina ou acrescenta uma faixa mais tarde eu vou ter que atualizar o arquivo zip, mas os arquivos temporários não vai mais existir.

Eu estou em uma perda ao melhor maneira de fazer isso e gostaria de receber qualquer conselho que você pode ter.

Obrigado!

Foi útil?

Solução

O pouco sobre a atualização do zip, mas não ter os arquivos temporários se o usuário adiciona ou remove uma pista me leva a suspeitar que você quer construir zips contendo várias faixas, possivelmente álbuns completos. Se não estiver correto e você está apenas colocando um único mp3 em cada um zip, então StingyJack é certo e você provavelmente vai acabar fazendo com que o arquivo (ligeiramente) maior em vez de menor, fechando-lo.

Se a minha interpretação está correta, então você está na sorte. ferramentas zip de linha de comando com freqüência têm bandeiras que podem ser usados ??para adicionar arquivos de ou apagar arquivos de um arquivo zip existente. Você não têm afirmado que biblioteca ou outro método que você está usando para fazer o fechando, mas eu espero que ele provavelmente tem essa capacidade também.

Outras dicas

O MP3 são compactados. Por que se preocupar fechando-los?

Eu diria que não é necessário fechar um formato de arquivo compactado, você só são gongo para obter uma redução de cinco por cento no tamanho do arquivo, dar ou tomar um pouco. dont Mp3 realmente fechar acima, pela sua natureza a ter comprimido a maioria dos dados possíveis já.

DotNetZip pode fechar-se arquivos de C # / ASP.NET. Concordo com os cartazes anteriores relacionadas a compressibilidade de MP3s. DotNetZip automaticamente ignorar de compressão em MP3, e apenas armazenar o arquivo, apenas por este motivo. Ela ainda pode ser interessante usar um fecho de correr como um recipiente de embalagem / arquivo, além da compressão.

Se você alterar o arquivo zip depois (usuário adiciona uma faixa), você pode pegar o arquivo .zip do S3, e apenas atualizá-lo. DotNetZip pode atualizar arquivos zip, também. Mas neste caso, você teria que pagar o custo de transferência para e de S3.

DotNetZip pode fazer tudo isso com a manipulação na memória dos zips - apesar de que pode não ser viável para grandes arquivos com lotes de MP3s e muitos usuários simultâneos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top