在torrent索引站点上保存种子

时间:2011-06-19 15:57:42

标签: php bittorrent

我正在构建一个用户可以上传种子的torrent网站。

保存.torrent文件的好方法是什么?

我可以想到几个选项:

将torrent文件本身保存在服务器上的文件夹中(不是最佳选择,因为操作系统有限制将大量文件保存在1个文件夹中)

每月将torrent文件本身保存在不同的文件夹中

将torrent文件的内容保存在数据库中(任何限制/性能问题/任何其他警告?)

还有其他选择吗?

6 个答案:

答案 0 :(得分:2)

如果您担心目录中包含太多文件,则需要跨多个目录分发文件。按月,日或周存储它们是一种方法。这有点依赖于你真正拥有的文件数量。

您可以尝试通过散列文件名来或多或少地平均分配子目录中的文件,并使用整个或部分哈希生成一个或多个子目录名称:

$hash = md5($fileName);
$srotePath = sprintf('%s/%s', substr($hash,0,2), $fileName);

这将从md5哈希(00 - ff,256个子目录中选取前两个字符来生成子目录。

与日期相比的好处是,当您拥有文件名时,您始终可以找到文件存储在哪个目录中。

这也意味着,您不能拥有相同名称的重复文件(可能适用于基于日期的子文件夹)。

答案 1 :(得分:1)

我用这个: 每月将torrent文件本身保存在不同的文件夹中

答案 2 :(得分:1)

使用数据库并不是很好。只需将它们保存为静态文件,甚至可以gzip它们。 只需确保使用某种散列方式对它们进行唯一重命名。

如果您在使用外部提供商时没有任何问题,可以使用TorCache

答案 3 :(得分:1)

我想说将.torrent文件保存在每周/每月文件夹中是最好的选择。

这样你就可以使用操作系统的文件系统缓存,即使你将.torrents存储在文档根目录之外以限制用户访问(最后你也必须打开()文件)

随着数据库大小的增加,将数据留在数据库中最终会导致性能下降。

答案 4 :(得分:0)

您可以试试亚马逊S3吗?它便宜,简单,快捷。

答案 5 :(得分:0)

自动上传它们可以保存.torrent文件。 http://www.tizag.com/phpT/fileupload.php有一个很好的例子。试一试。