This commit is contained in:
Liang Ding 2023-03-15 22:19:25 +08:00
parent 6eb5830d75
commit d04eacbf9a
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
4 changed files with 76 additions and 3 deletions

29
API.md
View file

@ -38,6 +38,7 @@
* [File](#File)
* [Get file](#Get-file)
* [Put file](#Put-file)
* [Remove file](#Remove-file)
* [Export](#Export)
* [Export Markdown](#Export-Markdown)
* [Notification](#Notification)
@ -439,7 +440,7 @@ View API token in <kbd>Settings - About</kbd>, request header: `Authorization: T
}
```
* `id`Block ID
* `id`: Block ID
* Return value
```json
@ -854,7 +855,7 @@ View API token in <kbd>Settings - About</kbd>, request header: `Authorization: T
* `isDir`: whether to create a folder, when `true` only create a folder, ignore `file`
* `modTime`: last access and modification time, Unix time
* `file`: the uploaded file
* return value
* Return value
```json
{
@ -864,6 +865,28 @@ View API token in <kbd>Settings - About</kbd>, request header: `Authorization: T
}
```
### Remove file
* `/api/file/removeFile`
* Parameters
```json
{
"path": "/data/20210808180117-6v0mkxr/20200923234011-ieuun1p.sy"
}
```
* `path`: the file path under the workspace path
* Return value
```json
{
"code": 0,
"msg": "",
"data": null
}
```
## Export
### Export Markdown
@ -946,7 +969,7 @@ View API token in <kbd>Settings - About</kbd>, request header: `Authorization: T
}
}
```
* `id`Message ID
* `id`: Message ID
## System

View file

@ -38,6 +38,7 @@
* [文件](#文件)
* [获取文件](#获取文件)
* [写入文件](#写入文件)
* [删除文件](#删除文件)
* [导出](#导出)
* [导出 Markdown 文本](#导出-markdown-文本)
* [通知](#通知)
@ -858,6 +859,27 @@
}
```
### 删除文件
* `/api/file/removeFile`
* 参数
```json
{
"path": "/data/20210808180117-6v0mkxr/20200923234011-ieuun1p.sy"
}
```
* `path`:工作空间路径下的文件路径
* 返回值
```json
{
"code": 0,
"msg": "",
"data": null
}
```
## 导出
### 导出 Markdown 文本

View file

@ -110,6 +110,33 @@ func getFile(c *gin.Context) {
}
}
func removeFile(c *gin.Context) {
ret := gulu.Ret.NewResult()
arg, ok := util.JsonArg(c, ret)
if !ok {
c.JSON(http.StatusOK, ret)
return
}
filePath := arg["path"].(string)
filePath = filepath.Join(util.WorkspaceDir, filePath)
_, err := os.Stat(filePath)
if os.IsNotExist(err) {
c.Status(404)
return
}
if nil != err {
logging.LogErrorf("stat [%s] failed: %s", filePath, err)
c.Status(500)
return
}
if err = os.RemoveAll(filePath); nil != err {
c.Status(500)
return
}
}
func putFile(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)

View file

@ -175,6 +175,7 @@ func ServeAPI(ginServer *gin.Engine) {
ginServer.Handle("POST", "/api/file/getFile", model.CheckAuth, getFile)
ginServer.Handle("POST", "/api/file/putFile", model.CheckAuth, model.CheckReadonly, putFile)
ginServer.Handle("POST", "/api/file/copyFile", model.CheckAuth, model.CheckReadonly, copyFile)
ginServer.Handle("POST", "/api/file/removeFile", model.CheckAuth, model.CheckReadonly, removeFile)
ginServer.Handle("POST", "/api/ref/refreshBacklink", model.CheckAuth, refreshBacklink)
ginServer.Handle("POST", "/api/ref/getBacklink", model.CheckAuth, getBacklink)