Python 设计一个存储和处理文件的应用程序

Python 设计一个存储和处理文件的应用程序,python,django,Python,Django,我的任务是编写一个应用程序,作为其他应用程序提供的文件(通常是文档格式)的中央存储点。它还需要执行诸如“文件395需要X格式的副本”之类的命令,此时一些工作将被卸载到第三方应用程序。我很难想出解决这个问题的策略 我希望设计尽可能简单,因此只要有意义,我希望避免使用大量额外的框架或线程之类的技术 客户机应该是web应用程序(例如,一个是接收客户文件的django应用程序;其他的尚未实现)。它运行的平台可能是Linux上的Python,除非我有充分的理由使用其他东西 起初,我认为我可以在文件名中放入

我的任务是编写一个应用程序,作为其他应用程序提供的文件(通常是文档格式)的中央存储点。它还需要执行诸如“文件395需要X格式的副本”之类的命令,此时一些工作将被卸载到第三方应用程序。我很难想出解决这个问题的策略

我希望设计尽可能简单,因此只要有意义,我希望避免使用大量额外的框架或线程之类的技术

客户机应该是web应用程序(例如,一个是接收客户文件的django应用程序;其他的尚未实现)。它运行的平台可能是Linux上的Python,除非我有充分的理由使用其他东西

起初,我认为我可以在文件名中放入我想要交流的信息,并让我的应用程序解析文件名以确定它需要做什么,但事实证明,这对于我意识到我需要提供的大量信息来说太不灵活了

另一个想法是将FTP与用作通信介质的数据库配对(客户端上载文件并使用命令更新数据库,将其作为表中的一行),但我不喜欢这种想法,因为添加命令(已知更改)看起来需要添加代码以及更改数据库模式。这也会使我的客户不得不使用的界面变得混乱

我考虑让应用程序更直接地通信,但我不喜欢为了这个目的运行额外的名称服务器。我也没有看到在这个框架内进行文件传输的好方法


我所寻找的是适用于我的问题的技术和/或技术。在最简单的层面上,我需要能够接受文件和消息。

您应该能够通过HTTP PUT和GET操作以相当RESTful的方式实现这一点。这将非常有用,原因如下:

  • 能够直接从内部网站链接到存储
  • 容易测试
  • 有很多库可以帮助您实现这一点
  • 无需担心客户端应用程序使用什么平台
我建议实施它,以便获取特定格式的文件就像导航到以下位置一样简单:


当然,在服务器中,我会使用一个包含文档、文件格式和已转换文件的缓存版本的数据库。我会根据需要调用第三方翻译人员,也就是说,当一个特定格式的文档请求进来时,该文档还没有在缓存中。

您需要研究的是一个。这是一份清单。甚至在其他语言中也有其他选择。这绝对不是你想要解决的问题——重新发明自己。这个问题域很快变得非常复杂,任何“简单”的解决方案都不会考虑可伸缩性和性能,迟早会被抛弃。

您的问题似乎需要一个RESTful web应用程序。至于什么样的框架可以让您最好地实现它,有些人甚至为此喜欢Django(可能有),其他人则更喜欢轻量级的框架——请参阅关于的一些讨论。另一个可能的框架没有提到——不幸的是,目前似乎没有维护(实际上,它与SVN存储库的链接悬而未决),但可能值得从pypi下载,看看,也许可以修改它。

+1,因为我从未听说过它。这是即时可用的。谢谢。这不是webDAV已经做过的吗?这很好,但老实说,这是最明显的部分,与困难的部分相比,甚至微不足道。困难的部分是规则引擎,它实际执行所有REST调用的编排。我更深入地研究了这个解决方案,它似乎最有意义。关于@fuzzy lollipop的建议,目前规则引擎似乎有点过于强大,无法满足我们的需求(尽管我无法最终将其作为未来的项目加以排除)。您可以同时执行这两项操作,并在服务器内部使用规则引擎来实现您的业务规则。不过,我可能不会为规则引擎而烦恼,除非您的规则a)复杂b)容易更改,c)需要管理长期存在的流程。要记住的教训是,当您开始编写自己的代码并意识到您正在编写规则引擎时,请停止并使用现有的规则引擎。