Seafile On-Disk File Storage Recovery Tool
.gitignore | ||
checks.go | ||
command.go | ||
commit.go | ||
config.go | ||
copy_walker.go | ||
fs.go | ||
go.mod | ||
go.sum | ||
LICENSE.txt | ||
ls_walker.go | ||
README.md | ||
s3_walker.go | ||
seafile_recovery.go |
seafile_recovery
Seafile Recovery.
Usage:
seafile_recovery [--storage=<sto>] head <repoid>
seafile_recovery [--storage=<sto>] ls <repoid> (--dir=<dirid> | --file=<fileid>)
seafile_recovery [--storage=<sto>] cp <repoid> (--dir=<dirid> | --file=<fileid>)
seafile_recovery [--storage=<sto>] s3 <repoid> (--dir=<dirid> | --file=<pathid>) <s3url>
seafile_recovery (-h | --help)
Options:
-h --help Show this screen
--storage=<sto> Set Seafile storage path [default: ./storage]
--dir=<dirid> Seafile Directory ID, can be obtained from commits as RootID
--file=<fileid> Seafile File ID, can be obtained through ls
Dev notes
Should look how Seafile handles ID collision, it might be one here in a repo with 44592
commits:
$ ls -lah
62684fe2260d67b6b5d2de909c3816feb21c39 bd8d7b2df788bf8bb6efc87ddb52c6f595ea7e ffc4e7f4273c8e4cc57124ccb6d65467c3b6a3
641064a61de537a696f2172e90be9c8ac4ae04 bd8d7b2df788bf8bb6efc87ddb52c6f595ea7e.8WWPVZ
$ ls -lah bd8d7b2df788bf8bb6efc87ddb52c6f595ea7e.8WWPVZ
-rw------- 1 1000 1000 0 Jan 12 2019 bd8d7b2df788bf8bb6efc87ddb52c6f595ea7e.8WWPVZ
% ls -lah bd8d7b2df788bf8bb6efc87ddb52c6f595ea7e
-rw------- 1 1000 1000 629 Jan 12 2019 bd8d7b2df788bf8bb6efc87ddb52c6f595ea7e