1

我有一个项目需要一个相当复杂的过程,我想确保我知道最好的方法来做到这一点。我正在使用带有 Adob​​e Flex 3 的 ASP.net C#。应用程序服务器是 Mosso(云服务器),文件存储服务器是 Amazon S3。现有网站可在NoiseTrade.com上查看

我需要这样做:

  • 允许用户将 MP3 文件上传到专辑“小部件”
  • 用户上传他们的专辑/小部件后,我需要自动压缩 mp3(供其他用户下载)并将 zip 与 mp3 曲目一起上传到 Amazon S3

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

我正在考虑这样做的方式是:

  • 将 mp3 存储在应用服务器上的临时文件夹中
  • 当艺术家“发布”时,使用 ac# 库在该文件夹中创建文件的 zip
  • 启动 amazon S3 上传过程(zip 和 mp3s)并在完成后向用户发送电子邮件(以及删除临时文件夹)

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

我不知道最好的方法来做到这一点,如果你有任何建议,我将不胜感激。

谢谢!

4

4 回答 4

1

如果用户添加或删除曲目,则有关更新 zip 但没有临时文件的一点让我怀疑您想要构建包含多个曲目的 zip,可能是完整的专辑。如果这是不正确的,并且您只是将一个 mp3 放入每个 zip,那么 StingyJack 是正确的,您最终可能会通过压缩文件(稍微)更大而不是更小。

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

于 2008-11-10T17:29:09.340 回答
0

MP3 被压缩。为什么要拉上拉链?

于 2008-11-10T17:22:20.710 回答
0

我会说没有必要压缩压缩文件格式,你只需要减少 5% 的文件大小,给予或接受一点。Mp3 本质上并没有真正压缩,而是已经压缩了大部分可能的数据。

于 2008-11-10T17:23:50.893 回答
0

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

如果您稍后更改 zip 文件(用户添加曲目),您可以从 S3 获取 .zip 文件,然后更新它。DotNetZip 也可以更新 zip 文件。但在这种情况下,您必须支付进出 S3 的传输费用。

DotNetZip 可以通过在内存中处理 zip 来完成所有这些工作——尽管这对于具有大量 MP3 和大量并发用户的大型档案来说可能是不可行的。

于 2009-01-04T04:47:33.933 回答