Лучший процесс автоматического архивирования нескольких MP3-файлов

StackOverflow https://stackoverflow.com/questions/278540

  •  07-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

Я думаю сделать это следующим образом:

  • Хранить mp3 в временной папке на сервере приложений
  • Когда артист "публикует" создавать молнию файлов в этой папке с помощью библиотеки AC#
  • Запустите процесс загрузки Amazon S3 (ZIP и MP3S) и отправьте электронное письмо с пользователем, когда он будет закончен (а также удаление временной папки)

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

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

Спасибо!

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top