* 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>