python - 扩展在文件系统中存储文件的应用程序时需要考虑什么?

标签 python filesystems scalability pyramid

我有兴趣制作一个应用程序,用户可以上传大文件(~2MB)并转换为 html 文档。该应用程序没有数据库。相反,这些 html 文件存储在文档源树外部的特定可写目录中。因此,随着越来越多的文件添加到其中,该目录将变得越来越大。用户应该能够通过访问适当的 url 来查看这些 html 文件。抛开所有安全问题不谈,如果这个目录继续增长,我还需要担心什么?里面的文件越多,访问时间是否会变长?它会因此而崩溃吗?我应该每 100 个文件左右创建一个新目录来防止这种情况发生吗?

这很重要,我想使用 Pyramid 和Python来制作这个应用程序

最佳答案

您可能希望按用户、应用程序或类似的方式对目录进行分区,以便无论如何都易于管理 - 就像如果用户停止使用该服务,您可以删除他们的目录。我猜你也会把它们拉上 zipper 。如果你保持良好的解耦,那么你以后就可以改变主意。

我很想知道如何使用 SQLite 之类的东西为您工作,因为您可以为每个分区目录拥有一个 sqlite 数据库。

我认为 HTML 文件比他们上传的文件大,所以为什么要存储大 HTML 文件。

像 Mongodb 之类的东西是不可能的吗?由于您的应用程序可通过多个服务器进行扩展,因此您会遇到访问不同服务器上的其他文件的问题,除非您首先使用某种技术选择正确的服务器。那么您的服务器可能会闲置,因为没有人想要这些文档。

为什么限制只将文件存储在目录中,这是 POC 吗?

编辑

我发现阅读类似 http://blog.fogcreek.com/the-trello-tech-stack/ 的内容很有值(value)我建议您找到一个已经在做您所做的事情的网站并阅读有关他们的技术的信息。堆栈。

正如有人已经评论过的,为什么不使用 Amazon S3 或类似的。

现实地问问自己,你想象有多少用户,你真的愿意花费大量精力担心成为下一个 Facebook,并在你可以让你的东西被使用时尝试为后端做最终的技术堆栈吗? 。

几年前,我开发了一个在文件系统上存储保险证书的系统,我们用来耗尽 inode 。!

我敢说这是一个糟糕的情况,看看什么对你和你的应用有用。

编辑

HAProxy我相信它们是为了解决所有负载平衡问题。

正如我想象的那样,作为一名用户,我想要 http://docs.yourdomain.com/myname/document.doc 尽管我认为这个名字如此明显会带来安全问题。

关于python - 扩展在文件系统中存储文件的应用程序时需要考虑什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14901429/

相关文章:

python - Hadoop mapreduce 任务失败并显示 143

Python:如何检查对象键值对的数据类型?

python - 只保留列表中唯一项的最有效方法?

c# - FileInfo 构造函数在短于 256 个字符时报告长文件名

php - 为什么 file_put_contents() 会成功但 touch() 会失败?

python - Spark(Python)中的 Kolmogorov Smirnov 测试不起作用?

c - 为什么要将文件分割成 block 以进行 HTTP 流式传输?

Java 8 何时进行流式传输以及为何进行流式传输

apache-spark - 如何将聚合数据添加到 Apache Spark 中的原始数据集?

performance - activemq性能陷阱和注意事项