代码拉取完成,页面将自动刷新
Name | Route | Method | Remark |
---|---|---|---|
Navigation Page | / | GET | |
Login Page | /login/index | GET | |
User Sign In API | /signin | POST | |
Source File Server | /source/ | GET | |
DestPath File Server | /dest/ | GET | |
File Query API | /query | GET | |
File Push API | /w/push | POST | |
PProf API | /manage/pprof | GET | |
Config API | /manage/config | GET | |
Report API | /manage/report | GET |
Support query source or dest path from File Server.
GET
Request field description:
path
query file path, for example path=source
need_hash
return file hash or not, 1
or 0
, default is 0
need_checkpoint
return file checkpoint hash or not, 1
or 0
, default is 0
Query the source path and return all files and checkpoints hash values.
http://127.0.0.1/query?path=source&need_hash=1&need_checkpoint=1
Response field description:
code
status code,1
means success, all status codes see Status Code
message
response status descriptiondata
response data
path
file pathis_dir
is directory or not, 1
or 0
size
file size of bytes, directory is always 0
hash
return file hash value if set need_hash=1
hash_values
return the hash value of the entire file and first chunk and some checkpoints if
set need_checkpoint=1
. The details of checkpoints see the use of checkpoint_count
flag
offset
the file data to calculate the hash value from zero to offsethash
the file checkpoint hash valuec_time
file creation timea_time
file last access timem_time
file last modify timelink_to
link to the real fileHere is an example response:
{
"code": 1,
"message": "success",
"data": [
{
"path": "go1.18.linux-amd64.tar.gz",
"is_dir": 0,
"size": 141702072,
"hash": "67622d8e307cb055b8ce2c2e03cb58cf",
"hash_values": [
{
"offset": 1048576,
"hash": "29d68359be77cdbe3d59791f0e367012"
},
{
"offset": 13631488,
"hash": "576b3746abb1f71bfbc794c750fb2c19"
},
{
"offset": 27262976,
"hash": "3a720d0a1a1c8abce3bf39cb7bc38507"
},
{
"offset": 40894464,
"hash": "946efd928cda9d0b20e9a74c4ba5db4f"
},
{
"offset": 54525952,
"hash": "eae47693bea9473c5ed859862685e4a7"
},
{
"offset": 68157440,
"hash": "ea700e864621fbee4a50d7b0e70b2e52"
},
{
"offset": 81788928,
"hash": "6c68022d11128ba256fb73a90b5232ef"
},
{
"offset": 95420416,
"hash": "ccfb4397caee4088b90e45d07829f1bf"
},
{
"offset": 109051904,
"hash": "d01e494ca88aa08d8a8a5279948db0b0"
},
{
"offset": 122683392,
"hash": "86bf50e8553674c26e2fbdb4477e44f4"
},
{
"offset": 136314880,
"hash": "51bba2e19d9519babccb0d5f4eedd7c3"
},
{
"offset": 141702072,
"hash": "67622d8e307cb055b8ce2c2e03cb58cf"
}
],
"c_time": 1649431872,
"a_time": 1649431873,
"m_time": 1647397031,
"link_to": ""
},
{
"path": "hello_gofs.txt",
"is_dir": 0,
"size": 11,
"hash": "5eb63bbbe01eeed093cb22bb8f5acdc3",
"hash_values": [
{
"offset": 11,
"hash": "5eb63bbbe01eeed093cb22bb8f5acdc3"
}
],
"c_time": 1649431542,
"a_time": 1649434237,
"m_time": 1649434237,
"link_to": ""
},
{
"path": "resource",
"is_dir": 1,
"size": 0,
"hash": "",
"hash_values": null,
"c_time": 1649431669,
"a_time": 1649431898,
"m_time": 1649431898,
"link_to": ""
}
]
}
Push the file changes to the Remote Push Server.
POST
Request field description:
push_data
the request data of push api, contains basic push file info and chunk info etc
action
the action of file change, Create(1) Write(2) Remove(3) Rename(4) Chmod(5) Symlink(6)push_action
the file upload action, CompareFile(1) CompareChunk(2) CompareFileAndChunk(3) Write(4) Truncate(5)file_info
basic push file info
path
file pathis_dir
is directory or not, 1
or 0
size
file size of bytes, directory is always 0
hash
file hash valuec_time
file creation timea_time
file last access timem_time
file last modify timelink_to
link to the real filechunk
offset
the offset relative to the origin of the filesize
file chunk size of bytes, directory is always 0
hash
file chunk hash valueforce_checksum
if the file size and file modification time of the source file is equal to the destination file
and force_checksum is false
, then ignore the current file transfer, default is false
up_file
the field name of upload file or chunkUpload a file to the remote push server.
POST https://127.0.0.1/w/push HTTP/1.1
Host: 127.0.0.1
User-Agent: Go-http-client/1.1
Content-Length: 674
Content-Type: multipart/form-data; boundary=d9e3eb63103de1c2698b0675a70567e47bed1b06c71ff9e26199967312d1
Cookie: session_id=MTY1MTY4MTkxNXxOd3dBTkVkQlZFMUNTVk5UTmsxS00wNVlTbEJMTnpJM1RFWklVVmhQUTBsTlFWaEZUbFZhVjB4VU5UYzJTazFNTWpSRFJFWlpUVUU9fMFwFk6SpF9vVsNcwNe6LnmxVCgshxv-ubZzZbTTDgnq
Accept-Encoding: gzip
--d9e3eb63103de1c2698b0675a70567e47bed1b06c71ff9e26199967312d1
Content-Disposition: form-data; name="push_data"
{"action":2,"push_action":4,"file_info":{"path":"hello_gofs.txt","is_dir":0,"size":5,"hash":"5d41402abc4b2a76b9719d911017c592","hash_values":null,"c_time":1651681421,"a_time":1651681421,"m_time":1651681421,"link_to":""},"chunk":{"offset":0,"hash":"5d41402abc4b2a76b9719d911017c592","size":5},"force_checksum":false}
--d9e3eb63103de1c2698b0675a70567e47bed1b06c71ff9e26199967312d1
Content-Disposition: form-data; name="up_file"; filename="hello_gofs.txt"
Content-Type: application/octet-stream
hello
--d9e3eb63103de1c2698b0675a70567e47bed1b06c71ff9e26199967312d1--
Response field description:
code
status code,1
means success, all status codes see Status Code
message
response status descriptiondata
response dataHere is an example response:
{
"code": 1,
"message": "success",
"data": null
}
Query the report data if you enable the manage
and report
flags.
GET
https://127.0.0.1/manage/report
Response field description:
code
status code,1
means success, all status codes see Status Code
message
response status descriptiondata
response data
current_time
returns the current server timestart_time
returns the server start timeup_time
returns the server up timepid
returns the process id of the callerppid
returns the process id of the caller's parenthostname
returns the host name reported by the kernelgo_os
is the running program's operating system targetgo_arch
is the running program's architecture targetgo_version
returns the Go tree's version stringversion
returns the version info of the gofscommit
returns last commit hash value of the gofsonline
returns the client connection info that is online
addr
the client connection addressusername
the username of clientperm
the permission of clientconnect_time
the connected time of clientdisconnect_time
the disconnected time of clientlife_time
the lifetime of a client, it is 0s
always that if the client is onlineoffline
returns the client connection info that is offline, full fields see online
events
returns some latest file change events
name
the path of file changeop
the operation of file changetime
the time of file changeevent_stat
returns the statistical data of file change eventsapi_stat
returns the statistical data of api access info
access_count
all the api access countvisitor_stat
the statistical data of visitorsHere is an example response:
{
"code": 1,
"message": "success",
"data": {
"current_time": "2022-03-28 01:36:31",
"start_time": "2022-03-28 01:00:00",
"up_time": "36m31s",
"pid": 94032,
"ppid": 9268,
"hostname": "no-src",
"go_os": "windows",
"go_arch": "amd64",
"go_version": "go1.18",
"version": "v0.4.0",
"commit": "753f90b3dd1454ca4c87f43b1bb5e6aaabbd7689",
"online": {
"127.0.0.1:11993": {
"addr": "127.0.0.1:11993",
"username": "698d51a19d8a121c",
"perm": "rwx",
"connect_time": "2022-03-28 01:10:11",
"disconnect_time": "1970-01-01 08:00:00",
"life_time": "0s"
}
},
"offline": [
{
"addr": "127.0.0.1:11887",
"username": "698d51a19d8a121c",
"perm": "rwx",
"connect_time": "2022-03-28 01:08:46",
"disconnect_time": "2022-03-28 01:10:06",
"life_time": "1m20s"
}
],
"events": [
{
"name": "C:\\workspace\\hello_gofs.txt",
"op": "WRITE",
"time": "2022-03-28 01:10:01"
}
],
"event_stat": {
"WRITE": 1
},
"api_stat": {
"access_count": 14,
"visitor_stat": {
"127.0.0.1": 11,
"192.168.0.106": 3
}
}
}
}
All common response status code enums below.
0
Unknown1
Success-1
Fail-2
Unauthorized-3
NotFound-4
NoPermission-5
ServerError-6
AccessDeny-7
NotModified-8
ChunkNotModified-9
Modified-10
ChunkModified此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。