我正在开发一个 WebDAV 服务器,它在虚拟文件系统中显示来自数据库的信息。
因此,用户能够在服务器上创建文件,并且它们会自动创建回数据库中。
现在,一旦用户连接到服务器,一些操作系统倾向于立即创建自己的元数据文件/文件夹(考虑 Thumbs.db、desktop.ini、.fseventsd、DS_Store,...)
这些文件使数据库变得混乱 - 并且往往也会降低性能(例如,OSX 会在打开文件夹后立即进行大量索引,这意味着对数据库的大量命中)
因此,为了性能和清洁度,我正在寻找由各种操作系统创建的(元)文件/文件夹的“完整”列表 - 这些是“安全”的,可以被服务器抑制。
到目前为止我的清单:
//TODO: get rid of system files
/*
*** everywhere
* Thumbs.db
* desktop.ini
* .DS_Store
* .desktop
* AlbumArt*.jpg
* Folder.jpg
* ._[ParentFoldername] // e.g. /foo/bar/._bar
* ._[ExistingFoldername] // e.g. /foo/._bar
* ._[ExistingFilename] // e.g. /foo/bar/._baz (baz is a legit file inside bar)
* ._. // ?!?
*** root only
* System Volume Information
* .fseventsd
* $recycling.bin
* $Recycle.Bin
* Recycled
* .Trashes
* hiberfil.sys
* pagefile.sys
* .hidden
* mach_kernel
* Backups.backupdb
* Contents
*
*** special
* .metadata_never_index // fake this file in root
* // (should keep OSX from indexing)
*/
我现有的 OSX 测试结构是:
/MarioDemo/
/FrankTest/
/TestItemRelation/
/.metadata_never_index
/MarioDemo/Alphabetical/
/MarioDemo/Hierarchical/
这里是 OSX 在打开 /MarioDemo/ 时请求的文件: