Question

J'ai un projet qui nécessite un processus assez compliqué et je veux m'assurer de connaître le meilleur moyen de le faire. J'utilise ASP.net C # avec Adobe Flex 3. Le serveur d'applications est Mosso (serveur cloud) et le serveur de stockage de fichiers est Amazon S3. Le site existant peut être consulté à l'adresse NoiseTrade.com

.

Je dois faire ceci:

  • Autoriser les utilisateurs à télécharger des fichiers MP3 sur un album " widget "
  • Une fois que l'utilisateur a téléchargé son album / widget, j'ai besoin de compresser automatiquement le mp3 (pour les autres utilisateurs à télécharger) et télécharger le zip avec les pistes mp3 à Amazon S3

En fait, cela fonctionne déjà (en utilisant le traitement côté client dans Flex), mais cela ne fonctionne plus à cause de la "sécurité" 10 d'Adobe. mettre à jour. Alors maintenant, je dois implémenter ce côté serveur.

La façon dont je pense faire ceci est:

  • Stocker le mp3 dans un dossier temporaire sur le serveur d'applications
  • Quand l'artiste " publie " créer un zip des fichiers dans ce dossier en utilisant une bibliothèque c #
  • Démarrer le processus de téléchargement amazon S3 (zip et mp3) et envoyez un e-mail à l'utilisateur lorsqu'il est terminé (ainsi que la suppression du dossier temporaire)

Le principal problème que je vois avec cette approche est que si un utilisateur supprime ou ajoute une piste ultérieurement, je devrai mettre à jour le fichier zip, mais les fichiers temporaires n'existeront plus.

Je ne sais pas comment le faire et j'apprécierais vos conseils.

Merci!

Était-ce utile?

La solution

Le fait de mettre à jour le zip mais de ne pas avoir les fichiers temporaires si l'utilisateur ajoute ou supprime une piste me laisse supposer que vous souhaitez créer des zips contenant plusieurs pistes, voire des albums complets. Si cela est incorrect et que vous ne mettez qu'un seul mp3 dans chaque zip, alors StingyJack a raison et vous finirez probablement par agrandir le fichier (légèrement) plus gros plutôt que plus petit en le compressant.

Si mon interprétation est correcte, alors vous avez de la chance. Les outils de zip en ligne de commande comportent souvent des indicateurs pouvant être utilisés pour ajouter ou supprimer des fichiers dans une archive zip existante. Vous n'avez pas indiqué la bibliothèque ou autre méthode que vous utilisez pour effectuer la compression, mais je m'attends à ce qu'elle dispose également de cette fonctionnalité.

Autres conseils

Les MP3 sont compressés. Pourquoi se donner la peine de les zipper?

Je dirais qu’il n’est pas nécessaire de compresser un format de fichier compressé, vous ne pouvez que réduire de 5% la taille du fichier, donnez ou prenez un peu. Les MP3 ne compressent pas vraiment par nature, ils ont déjà compressé la plupart des données possibles.

DotNetZip peut compresser des fichiers à partir de C # / ASP.NET. Je suis d'accord avec les affiches antérieures concernant la compressibilité des fichiers MP3. DotNetZip va automatiquement ignorer la compression sur MP3 et simplement stocker le fichier, rien que pour cette raison. Il peut toujours être intéressant d’utiliser un zip en tant que conteneur d’emballage / archive, mis à part la compression.

Si vous modifiez le fichier zip ultérieurement (l'utilisateur ajoute une piste), vous pouvez récupérer le fichier .zip à partir de S3 et le mettre à jour. DotNetZip peut également mettre à jour les fichiers zip. Mais dans ce cas, vous devrez payer les coûts de transfert pour entrer et sortir de S3.

DotNetZip peut faire tout cela avec la gestion en mémoire des zips - bien que cela puisse ne pas être réalisable pour de grandes archives avec beaucoup de MP3 et beaucoup d'utilisateurs simultanés.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top