我正在构建一个用户可以上传种子的torrent网站。
保存.torrent文件的好方法是什么?
我可以想到几个选项:
将torrent文件本身保存在服务器上的文件夹中(不是最佳选择,因为操作系统有限制将大量文件保存在1个文件夹中)
每月将torrent文件本身保存在不同的文件夹中
将torrent文件的内容保存在数据库中(任何限制/性能问题/任何其他警告?)
还有其他选择吗?
答案 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有一个很好的例子。试一试。