自动压缩多个MP3的最佳流程

时间:2008-11-10 17:20:19

标签: c# asp.net zip amazon-s3

我有一个项目需要一个相当复杂的过程,我想确保我知道最好的方法。我正在使用ASP.net C#和Adobe Flex 3.应用服务器是Mosso(云服务器),文件存储服务器是Amazon S3。可以在NoiseTrade.com

查看现有网站

我需要这样做:

  • 允许用户上传MP3文件 专辑“widget”
  • 用户上传后 专辑/小部件,我需要 自动压缩mp3(其他 用户下载)并上传 拉链以及mp3曲目 亚马逊S3

我实际上已经有了这个工作(在Flex中使用客户端处理),但由于Adobe的Flash 10“安全性”更新,这不再有效。所以现在我需要实现这个服务器端。

我想这样做的方式是:

  • 将mp3存储在临时文件夹中 在应用服务器上
  • 当艺术家“发表”创作一个 zip文件夹中的文件 使用c#库
  • 启动亚马逊S3上传程序(zip和mp3s) 并在用户发送电子邮件时发送给用户 完成(以及删除 临时文件夹)

我用这种方法看到的主要问题是,如果用户稍后删除或添加曲目,我将不得不更新zip文件,但临时文件将不再存在。

我最擅长这样做,并希望得到任何建议。

谢谢!

4 个答案:

答案 0 :(得分:1)

如果用户添加或删除某个曲目,有关更新zip但没有临时文件的信息会导致我怀疑您要构建包含多个曲目的拉链,可能是完整的专辑。如果这是不正确的,你只是将一个mp3放入每个zip中,那么StingyJack是正确的,你可能最终会通过压缩它来使文件(稍微)更大而不是更小。< / p>

如果我的解释是正确的,那么你很幸运。命令行zip工具通常具有标志,可用于向现有zip存档添加文件或从中删除文件。你还没有说明你使用哪种库或其他方法来进行压缩,但我希望它也可能具有这种功能。

答案 1 :(得分:0)

MP3已被压缩。为什么要打扰他们?

答案 2 :(得分:0)

我想说没有必要压缩压缩文件格式,你只需要减少5%的文件大小,给予或采取一点点。 Mp3并没有真正压缩它已经压缩了大部分可能的数据。

答案 3 :(得分:0)

DotNetZip可以压缩C#/ ASP.NET中的文件。我同意之前有关MP3可压缩性的海报。因为这个原因,DotNetZip将自动跳过压缩MP3,并只存储文件。除了压缩之外,使用zip作为打包/存档容器仍然是有趣的。

如果您稍后更改了zip文件(用户添加了一个曲目),您可以从S3获取.zip文件,然后只需更新它。 DotNetZip也可以更新zip文件。但在这种情况下,您必须支付转入和转出S3的转移成本。

DotNetZip可以通过内存处理拉链来完成所有这些工作 - 尽管这对于拥有大量MP3和大量并发用户的大型档案来说可能并不可行。