我正在实施一个洪stream下载和存档系统。 我想下载一个torrent文件(其中包含几个小文件),然后将其归档。 我的磁盘性能差。 所以我想要一个有效的归档文件的方式。
我有几个select:
1.在普通磁盘/文件系统上下载文件,然后使用普通的unix tar命令打开它。
2.创build空白的TAR归档文件,然后使用archivemount将其挂载到写入模式,然后在挂载的path中开始下载torrent文件。
3.与选项2类似,但使用ZIP文件而不是tar。
4.因为我想通过Web浏览器传送文件:实现一个软件/脚本来即时打开一个文件夹。 (我几年前写了一个python脚本(uWsgi / Nginx)来做这个,但是tar需要每个文件的校验和,性能很差)
5.find一个可以直接写入TAR / Zip文件的torrent客户端。 (非常不可能)
我应该考虑哪种方式?
谢谢。
如果磁盘确实是你真正的瓶颈,那么对于性能的最好的实际上仍然可能是4。 这样就不必花费宝贵的IOPS将文件从一个地方复制到另一个地方。
另外,选项4实际上是唯一的选项,一旦你的服务器完成下载,客户端可以立即下载洪stream,这意味着客户端可以更快地获得他们的数据。 而且,这样你可以轻松地允许用户下载单个文件(因为他们只是坐在你的文件系统上而已经很简单)。
我会调查为什么焦油给你如此糟糕的performance。 我真的怀疑这是校验和是你的问题,因为他们甚至没有logging数据。 任何原因,你不能只是直接从网页浏览器输出GNU tar的输出,而不是编写自己的tar打包程序?
一个挑战就是用这种方法为客户提供正确的内容长度。 如果你不关心,你可以忽略发送这个,然后你的客户端只会看不到一个百分比计数器的下载。 这可能无关紧要,取决于您的应用程序。