在 torrent 索引站点上保存 torrent

发布于 2024-11-16 07:17:59 字数 277 浏览 3 评论 0原文

我正在建立一个 torrent 网站,用户可以在其中上传 torrent。

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

我可以想到几个选项:

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

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

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

还有其他选择吗?

I'm building a torrent site where users can upload torrents.

What would be a good way to save the .torrent files?

I can think of several options:

Saving the torrent file itself in a folder on the server (not the best option since OS's have limitations saving lots of files in 1 folder)

Saving the torrent file itself in different folders per month

Saving the contents of the torrent file in the database (any limitations / performance issues / any other caveats?)

Any other options?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

凉宸 2024-11-23 07:17:59

如果您担心目录中的文件过多,则需要将文件分布到多个目录中。按月、日或周存储它们是一种方法。我想说,这有点取决于您真正拥有的文件数量。

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

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

这将从 md5 哈希(00-ff,256 个子目录)生成子目录。

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

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

If you're concerned about having too much files within a directory, you need to distribute the files across multiple directories. Storing them by month, day or week is one way how to do so. It depends a bit how many files you really have I would say.

You can try to more or less equally distribute the files within subdirectories by hashing their filename and use the whole or part of the hash to generate one or multiple subdirectory names:

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

This would pick the first two character from an md5 hash (00-ff, 256 subdirectories) to generate the subdirectory.

The benefit compared with a date is, that you always can find out in which directory a file is stored when you have it's name.

That does also mean, that you can not have duplicate files with the same name (which might have worked for the date based subfolder).

够运 2024-11-23 07:17:59

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

I'm use this:
Saving the torrent file itself in different folders per month

み格子的夏天 2024-11-23 07:17:59

使用数据库一点都不好。只需将它们保存为静态文件,甚至可以使用 gzip 压缩它们。
只需确保使用某种散列对它们进行唯一的重命名即可。

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

using database is not at all good. just save them as static files and maybe even gzip them .
just make sure to rename them uniquely with some kind of hashing .

if you don't have any problem in using external provider you can use TorCache

雅心素梦 2024-11-23 07:17:59

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

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

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

I would say saving the .torrent file in a weekly/monthly folder is the best option.

That way you can use the OS' filesystem cache, even if you store the .torrents outside the document root for limiting user access (in the end you will have to open() the file anyway)

Leaving torrents in the database would eventually lead to slow performance as the DB increases in size.

明媚如初 2024-11-23 07:17:59

您可以尝试一下 Amazon S3 吗?它便宜、简单、快捷。

May be you try Amazon S3? It's cheap, easy and fast.

分开我的手 2024-11-23 07:17:59

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

Uploading them automatically saves .torrent files. http://www.tizag.com/phpT/fileupload.php has a good example. Give it a try.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文