* Add online gc core
* Add check gc when update repo
* Go add check gc when update repo
* Add gc unit test
* Support set pwd_hash for gc and fsck
* Optimize to check if block exists
---------
Co-authored-by: 杨赫然 <heran.yang@seafile.com>
* Add json exp
* Add json exp and add gen jwt token
* Gen seahub and notif jwt token
* Add exp for gen jwt token
* Delete gen_jwt_token API
* Delete set exp to 72 hour
---------
Co-authored-by: 杨赫然 <heran.yang@seafile.com>
* Add notification server of go
Modify path of pkg
Send notification for update-repo event
Delete client pkg and use reflect select to send message
Modify output of log
Add formatter of log
Add jwt authentication
go add get jwt token api
CI support compile libjwt
Get group users from database
* Add ping to test mysql is alive
Co-authored-by: 杨赫然 <heran.yang@seafile.com>
* Reuse zlib ReadCloser and add timeout for get fs id list
* Reuse zlib reader
* Get seafile and seafdir with zlib reader
Co-authored-by: 杨赫然 <heran.yang@seafile.com>
Use json-iterator/go to parse fs objects (#510)
Co-authored-by: 杨赫然 <heran.yang@seafile.com>
Add cache for seafdir (#511)
* Add cache for seafile and seafdir
* Add ttl for fs cache
* Use MB unit and add a comment
Co-authored-by: 杨赫然 <heran.yang@seafile.com>
Close object after reading finished (#512)
Co-authored-by: 杨赫然 <heran.yang@seafile.com>
* Initial commit for fileserver written in golang.
[gofileserver] Fix some syntaxt errors.
Add fs backend and objstore test (#352)
* Add fs backend and objstore test
* modify test case and optimize fs backend
* Modify function name and first write temporary files
* Don't need to reopen the temp files
Add comment for objstore (#354)
* Add comment for objstore
* Modify comment
Add commitmgr and test case (#356)
* Add commitmgr and test case
* Redefine the interface
* Modify comment and interface
* Modify parameter and del unused method
* Add comment for FromData and ToData
Add blockmgr and test case (#357)
* Add blockmgr and test case
* Modify comment and interface
Add fsmgr and test case (#358)
* Add fsmgr and test case
* Add save interface and error details
* Modify errors and comments
Add searpc package and test case (#360)
* Add searpc package
* Add searpc test case
* Add return error and add Request struct
* Modify returned error
* Modify comments
add checkPerm (#369)
Add file and block download (#363)
* Add file and block download
* Modify init and use aes algorithm
* Get block by offset and add stat method
* Modify objID's type
* Fix reset pos after add start
* Add http error handing and record log when failed to read block or write block to response
* Modify http return code and value names
* Modify http return code and add log info
* Block read add comment and only repeat once
load ccnetdb and support sqlite (#371)
Add zip download (#372)
* Add zip download
* Modify pack dir and log info
* Modify http return code and use Deflate zip compression methods
add /repo/<repo-id>/permission-check (#375)
add /<repo-id>/commit/HEAD (#377)
add /repo/<repo-id>/commit/<id> (#379)
add /repo/<repo-id>/block/<id> (#380)
add /repo/<repo-id>/fs-id-list (#383)
add /repo/head-commits-multi (#388)
Add file upload api (#378)
* Add file upload api
* Upload api implements post multi files and create relative path
* Modify handle error and save files directly
* Fix rebase conflict
* index block use channel and optimize mkdir with parents
* Handle jobs and results in a loop
* Mkdir with parents use postMultiFiles and use pointer of SeafDirent
* Del diff_simple size_sched virtual_repo
* Need to check the path with and without slash
* Modify merge trees and add merge test case
* Del postFile and don't close results channel
* Close the file and remove multipart temp file
* Modify merge test case and compare the first name of path
* Use pointer of Entries for SeafDir
* Add test cases for different situations
add /repo/<repo-id>/pack-fs (#389)
add POST /<repo-id>/check-fs and /<repo-id>/check-blocks (#396)
Merge compute repo (#397)
* Add update repo size and merge virtual repo
* Eliminate lint warnings
* Uncomment merge virtual repo and compute repo size
* Need init the dents
* Use interface{} param and modify removeElems
* Move update dir to file.go and modify logs
* Del sync pkg
add PUT /<repo-id>/commit/<commit-id> (#400)
add PUT /<repo-id>/block/<id> (#401)
add POST /<repo-id>/recv-fs (#398)
add PUT /<repo-id>/commit/HEAD (#402)
Add http return code (#403)
Add file update API (#399)
* Add file update API
* Add GetObjIDByPath and fix change size error
* Add traffic statistics for update api
add diffTrees unit test (#391)
add GET /accessible-repos (#406)
add GET /<repo-id>/block-map/<file-id> (#405)
Add test update repo size and merge virtual repo (#409)
* Update dir need update repo size
* Add test update repo size and merge virtual repo
* Add delay for test ajax
* Add delay before get repo size and modify comment
Use go fileserver for unit test (#410)
* Use go fileserver for unit test
* Blocking scheduling update repo size
* Add delay because of sqlite doesn't support concurrency
* Post use multipart form encode
* Del mysql database when test finished
* Fix merge virtual repo failed when use sqlite3
Add upload block API (#412)
fixed error
Add quota-check API (#426)
use diff package
* Use central conf for go fileserver (#428)
* Use central conf for go fileserver
* Fix log error
* use store id and remove share get repo owner (#430)
* Fix permission error (#432)
Co-authored-by: feiniks <36756310+feiniks@users.noreply.github.com>
Co-authored-by: Xiangyue Cai <caixiangyue007@gmail.com>