See also: File Gallery Revamp
Tiki File Galleries are pretty awesome, and they add an abstraction layer for security and additional features. But sometimes, a flat set of numeric identifiers is not sufficient, we want to preserve original file names and filesystem structures so that relative paths are preserved in a group of related files where one file expects another one at a certain relative path. Two problems to solve:
- Some software will generate a bunch of files that need to maintain internal links
- An external process which uploads and / or downloads files to a directory (SSH, FTP, WebDAV, etc. or file sync tools like Syncthing)
Note: If a file is too big to upload via the web interface, site admin can upload manually, and then manage via Tiki (ex.: give it meta-data). Currently, the way to do this is Batch Upload.
We could enhance the File Gallery feature to have two modes per file gallery:
- Abstraction (the default)
- Direct mapping or pass-through / path preservation (a new mode to be added)
Essential features
- We still need to be able to move files back and from the two file gallery types
Questions
- How would Tiki know there has been some changes to the files (additions / removals)?
- To update the meta data in the Tiki database and apply operations (ex.: Watch)
- If a file is renamed, how does Tiki know it was renamed, and not a deletion, and addition (which would lose any meta data about the file)
- How to deal with version history of files? (Perhaps use the same format as Syncthing)
- What happens when a folder is created? It should not be possible to have an "Abstraction" file gallery as a child of a "Direct mapping" file gallery.
- How is security handled? Permissions would have to be for whole folder? and folder should ideally be stored outside the web root.
- How to deal file content indexing?
Ideas
- Kolab has an XML for each file, that has the meta data: https://wiki.kolab.org/Kolab_3.0_Storage_Format
- Tech background about File Galleries by Louis-Philippe
- To be future proof, perhaps we should add an abstraction layer like Flysystem, Gaufrette or others?
- Do only via elFinder (no legacy UI mode): https://github.com/Studio-42/elFinder/wiki/Connector-configuration-options-2.1#localfilesystem
Related links
- PluginFTP
- ClearOS Flexshares as part of WikiSuite
- http://elfinder.org/ Can also be used as a new front-end for the file gallery revamp
- http://ajaxplorer.info/ (AGPL)
- http://www.net2ftp.com/
- http://extplorer.net/
- http://code.google.com/p/fileexplorerxp/
- http://www.dreamcss.com/2009/07/file-managers-based-on-jquery-ajax-php.html
- http://stackoverflow.com/questions/5774497/does-anyone-know-of-a-jquery-ftp-browser-plugin
- https://code.google.com/p/msys-file-manager/source/browse/branches/dirLIST_0.3.0/README
- https://www.ohloh.net/p?page=2&q=ftp+php&sort=active_committers
- https://github.com/DirectoryLister/DirectoryLister