我正在建立一个本地的职业运营商,可以执行各种维护任务,从FTP到数据抓取和初步分析。由于它基于通用文件系统运行,因此需要知道在哪里可以找到某些文件夹和文件。该应用程序将没有数据库,主要依赖于YAML格式的配置文件。
我正在为这些路径设计配置文件,我想知道是否有与此相关的最佳实践。我尝试搜索,但我只能找到配置文件格式之间的参数,而不是其内容的设计。
以下是我正在讨论的方法:
使用通用字典名称嵌套路径,因此可以递归循环以通过os.path生成绝对路径
fileserver:
drive:
path: Shared Files
myfolder:
path: MyFolder
reports:
path: Daily Reports
other:
path: Other Reports
some:
path: Some Reports
some2014:
path: Some Reports 2014
some2015:
path: Some Reports 2015
another-folder:
path: 1 - Another Folder
reports:
path: Daily Reports
ip: 192.168.0.0
path: \\MYSERVER1
定义常见的dict名称并添加“父”属性,然后使用父属性走到服务器根目录。
server:
ip: 192.168.0.0
path: \\MYSERVER1
drive:
path: Shared Files
parent: server
myfolder:
path: MyFolder
parent: drive
myreports:
path: Daily Reports
parent: myfolder
somereports:
path: Some Reports
parent: myreports
some2015reports:
path: Some Reports 2015
parent: myreports
etc...
使用占位符约定,并在加载配置文件时将它们正则化为绝对路径:
server: \\MYSERVER1
drive: [server]\Shared Files
myfolder: [drive]\My Folder
etc.
在完美的世界中,当技术发生变化时,非技术人员可以轻松更新。有没有人有实现这样的经验?我认为我的解决方案都不是很好,我很想看到这种配置的生产示例。
答案 0 :(得分:0)
对我而言,1号似乎是最具扩展性的,因此是我的选择。
我会对它做出一些改变,因为我发现它有点难以一目了然。
fileserver:
drive:
path: Shared Files
myfolder:
path: MyFolder
reports:
paths:
- Daily Reports
- Other Reports
- Some Reports
- Some Reports 2014
- Some Reports 2015
another-folder:
path: 1 - Another Folder
reports:
paths:
- Daily Reports
ip: 192.168.0.0
path: \\MYSERVER1