Лучший процесс для автоматической архивации нескольких MP3 - PullRequest
1 голос
/ 10 ноября 2008

У меня есть проект, который требует довольно сложного процесса, и я хочу убедиться, что знаю лучший способ сделать это. Я использую ASP.net C # с Adobe Flex 3. Сервер приложений - Mosso (облачный сервер), а сервер хранения файлов - Amazon S3. Существующий сайт можно посмотреть по адресу NoiseTrade.com

Мне нужно сделать это:

  • Разрешить пользователям загружать файлы MP3 в альбом "виджет"
  • После того, как пользователь загрузил свои альбом / виджет, мне нужно автоматически архивировать mp3 (для других пользователи, чтобы загрузить) и загрузить молнии вместе с mp3-треками в Amazon S3

На самом деле это уже работает (с использованием обработки на стороне клиента во Flex), но это больше не работает из-за обновления безопасности Adobe Flash 10. Так что теперь мне нужно реализовать эту серверную часть.

Я думаю о том, как это сделать:

  • Хранить mp3 во временной папке на сервере приложений
  • Когда художник "публикует", создайте почтовый индекс файлов в этой папке используя библиотеку c #
  • Запустите процесс загрузки amazon S3 (zip и mp3s) и по электронной почте пользователю, когда это закончено (а также удаление временная папка)

Основная проблема, с которой я сталкиваюсь при таком подходе, заключается в том, что если пользователь позже удалит или добавит дорожку, мне придется обновить ZIP-файл, но временные файлы больше не будут существовать.

Я в растерянности, лучший способ сделать это, и буду признателен за любой совет, который вы могли бы дать.

Спасибо!

Ответы [ 4 ]

1 голос
/ 10 ноября 2008

Немного об обновлении почтового индекса, но при отсутствии временных файлов, если пользователь добавляет или удаляет дорожку, заставляет меня подозревать, что вы хотите создавать архивы, содержащие несколько дорожек, возможно, полные альбомы. Если это неверно, и вы просто помещаете один mp3 в каждый zip, то StingyJack прав, и вы, вероятно, в конечном итоге сделаете файл (немного) больше , а не уменьшите его, сжав его.

Если моя интерпретация верна, то вам повезло. У инструментов командной строки zip часто есть флаги, которые можно использовать для добавления файлов или удаления файлов из существующего zip-архива. Вы не указали, какую библиотеку или другой метод вы используете для архивирования, но я ожидаю, что он, вероятно, также имеет эту возможность.

0 голосов
/ 04 января 2009

DotNetZip может архивировать файлы из C # / ASP.NET. Я согласен с предыдущими постерами относительно сжимаемости MP3. DotNetZip автоматически пропустит сжатие MP3 и сохранит файл, просто по этой причине. Еще может быть интересно использовать zip в качестве упаковочного / архивного контейнера, кроме сжатия.

Если вы позже измените файл zip (пользователь добавляет дорожку), вы можете получить файл .zip с S3 и просто обновить его. DotNetZip также может обновлять zip-файлы. Но в этом случае вам придется оплатить стоимость перевода в и из S3.

DotNetZip может делать все это с помощью обработки zip-файлов в памяти - хотя это может быть неосуществимо для больших архивов с большим количеством файлов MP3 и множеством одновременных пользователей.

0 голосов
/ 10 ноября 2008

Я бы сказал, что нет необходимости архивировать сжатый формат файла, вам нужно всего лишь пять процентов, чтобы получить уменьшение размера файла, дать или взять немного. Mp3 по своей природе не сжимаются, поскольку уже сжали большинство возможных данных.

0 голосов
/ 10 ноября 2008

MP3 сжаты. Зачем их застегивать на молнию?

...