From 99dc75384381541fee0d016f076fd805e6585d1a Mon Sep 17 00:00:00 2001 From: Dan Date: Wed, 28 Jul 2021 19:23:10 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=20=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=90=8C=E6=97=B6=E5=8F=AA=E8=83=BD=E4=B8=8A=E4=BC=A03?= =?UTF-8?q?=E4=B8=AA=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/index.vue | 74 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 60 insertions(+), 14 deletions(-) diff --git a/src/layout/index.vue b/src/layout/index.vue index 1c525b4..4239ec0 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -24,7 +24,7 @@ ref="elementUpload" :multiple="true" :show-file-list="false" - :auto-upload="true" + :auto-upload="false" :before-upload="beforeUpload" :http-request="uploadRequest" :on-progress="progressChange" @@ -418,6 +418,8 @@ export default { filePreprocessing: [], // 上传面板中的文件上传的列队信息(包含着所有状态的文件数据) uploadedFilesList: [], + // 文件最大同时上传数量控制(作为常量控制,从0开始) + maxUpload: 2, // 是否显示当前文件上传面板 displayUploadPanel: false, // 是否显示文件分享的对话框 @@ -1446,22 +1448,31 @@ export default { pause (file) { file.status = 'paused' file.state = this.fileStatusText('paused') - file.subscription.unsubscribe() + if (file.subscription != null) { + file.subscription.unsubscribe() + } + this.eleUpload() }, /** * 上传开始事件 */ resume (file) { - if (file.observable == null) { - this.uploadRequest(file.request) - } else { - file.status = 'uploading' - file.state = this.fileStatusText('uploading') - // 构建七牛云上传 - file.subscription = file.observable.subscribe( - next => this.nextUpload(next, file.uid), - error => this.errorUpload(error, file.uid), - complete => this.completeUpload(complete, file.uid, file.size)) + file.status = 'waiting' + file.state = this.fileStatusText('waiting') + // 获取当前正在上传的文件数量 + let uploading = this.uploadedFilesList.filter(item => item.status === 'etag' || item.status === 'uploading') + if (uploading.length <= this.maxUpload) { + if (file.observable == null) { + this.$refs.elementUpload.$refs['upload-inner'].upload(file.raw) + } else { + file.status = 'uploading' + file.state = this.fileStatusText('uploading') + // 构建七牛云上传 + file.subscription = file.observable.subscribe( + next => this.nextUpload(next, file.uid), + error => this.errorUpload(error, file.uid), + complete => this.completeUpload(complete, file.uid, file.size)) + } } }, /** @@ -1531,11 +1542,13 @@ export default { // 调用el-upload的上传失败事件 res.request.onError(error.message) }) + this.eleUpload() }, /** * 上传成功时返回 */ completeUpload (complete, uid, size) { + this.eleUpload() // 请求成功时返回统一状态码 if (complete.code !== '200') { this.$message({ @@ -1551,7 +1564,8 @@ export default { }) } else { this.setUserCapacityInfo(size) - let uploadComplete = this.uploadedFilesList.filter(item => item.status === 'uploading') + let uploadComplete = this.uploadedFilesList + .filter(item => item.status === 'waiting' || item.status === 'etag' || item.status === 'uploading') if (uploadComplete.length <= 0) { // 重新获取当前页面的数据 this.getFileListInfo(null, null, true) @@ -1604,6 +1618,7 @@ export default { this.uploadedFilesList.push({ name: file.name, uid: file.uid, + raw: file.raw, size: storageUnitConversion(file.size), status: 'waiting', state: this.fileStatusText('waiting'), @@ -1611,6 +1626,11 @@ export default { etagProgress: this.progressStyle(0), icon: this.fileCategory(file.name.split('.').pop().toLowerCase(), file.raw.type.split('/')[0]) }) + // 获取当前正在上传的文件数量 + let uploading = this.uploadedFilesList.filter(item => item.status === 'etag' || item.status === 'uploading') + if (uploading.length <= this.maxUpload) { + this.$refs.elementUpload.$refs['upload-inner'].upload(file.raw) + } } } }, @@ -1733,6 +1753,7 @@ export default { response.data['diskUserFile']['select'] = false this.fileList.unshift(response.data['diskUserFile']) this.setUserCapacityInfo(response.data['diskUserFile']['ossFileSize']) + this.eleUpload() } else { // 执行普通上传程序 const key = response.data.key @@ -1762,8 +1783,33 @@ export default { // 调用el-upload的上传失败事件 request.onError(err.message) }) + this.eleUpload() }) }, + /** + * element 手动调用上传组件 + */ + eleUpload () { + let uploading = this.uploadedFilesList.filter(item => item.status === 'etag' || item.status === 'uploading') + if (!uploading.length || uploading.length <= this.maxUpload) { + // 过滤出其中待上传的文件数据 + let waitingUpload = this.uploadedFilesList.filter(item => item.status === 'waiting') + if (!waitingUpload.length) { + return + } + if (waitingUpload[0].observable == null) { + this.$refs.elementUpload.$refs['upload-inner'].upload(waitingUpload[0].raw) + } else { + waitingUpload[0].status = 'uploading' + waitingUpload[0].state = this.fileStatusText('uploading') + // 构建七牛云上传 + waitingUpload[0].subscription = waitingUpload[0].observable.subscribe( + next => this.nextUpload(next, waitingUpload[0].uid), + error => this.errorUpload(error, waitingUpload[0].uid), + complete => this.completeUpload(complete, waitingUpload[0].uid, waitingUpload[0].size)) + } + } + }, /** * 上传面板中的进度条动态样式 */ @@ -1892,7 +1938,7 @@ export default { upload.handleStart(new File([e.dataTransfer.files[i]], e.dataTransfer.files[i].name)) } } - upload.submit() + this.eleUpload() }, // ============================== 支付块 ============================== /** -- Gitee From 83fb10c787323dbc7a1ef6683c2cb2dcd5463836 Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 26 Aug 2021 15:34:24 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=20=E9=87=8D=E5=86=99el?= =?UTF-8?q?-input-number?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/inputNumer/index.js | 7 + src/components/inputNumer/src/inputNumber.vue | 291 ++++++++++++++++++ src/layout/index.vue | 9 +- 3 files changed, 303 insertions(+), 4 deletions(-) create mode 100644 src/components/inputNumer/index.js create mode 100644 src/components/inputNumer/src/inputNumber.vue diff --git a/src/components/inputNumer/index.js b/src/components/inputNumer/index.js new file mode 100644 index 0000000..37604bc --- /dev/null +++ b/src/components/inputNumer/index.js @@ -0,0 +1,7 @@ +import inputNumber from './src/inputNumber' + +inputNumber.install = function (Vue) { + Vue.component(inputNumber.name, inputNumber) +} + +export default inputNumber diff --git a/src/components/inputNumer/src/inputNumber.vue b/src/components/inputNumer/src/inputNumber.vue new file mode 100644 index 0000000..747e704 --- /dev/null +++ b/src/components/inputNumer/src/inputNumber.vue @@ -0,0 +1,291 @@ + + diff --git a/src/layout/index.vue b/src/layout/index.vue index 4239ec0..65d5eff 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -262,9 +262,9 @@
- + @@ -347,6 +347,7 @@ import VueQr from 'vue-qr' import cookies from 'js-cookie' import uploader from '@/components/upload/uploader' import fileCard from '@/components/fileCard/fileCard' +import inputNumber from '@/components/inputNumer/index' import {storageUnitConversion, formatDate, fileCategory, mimeTypes, clipboard, downloadByUrl} from '@/utils/utils' export default { @@ -559,7 +560,7 @@ export default { } }, components: { - uploader, fileCard, VueQr + uploader, fileCard, inputNumber, VueQr }, // 钩子函数: 数据监听 watch: { -- Gitee From 592b68f15a3e5197dba84261c4c079ee435d5f20 Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 27 Aug 2021 22:39:15 +0800 Subject: [PATCH 03/13] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E7=AC=AC?= =?UTF-8?q?=E4=B8=80=E7=89=88api=E6=8E=A5=E5=8F=A3=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/index.vue | 2 +- ...347\233\230API\346\226\207\346\241\243.md" | 1258 +++++++++++++++++ 2 files changed, 1259 insertions(+), 1 deletion(-) create mode 100644 "\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" diff --git a/src/layout/index.vue b/src/layout/index.vue index 65d5eff..a94de9e 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -605,7 +605,7 @@ export default { this.setUserInfoCookies(JSON.parse(userInfo)) // 从缓存中获取当前登录的用户信息 getDiskUserToSession().then((response) => { - this.setUserInfoCookies(response.data.data.userInfo) + this.setUserInfoCookies(response.data.userInfo) }).catch((err) => { console.log(err) }) diff --git "a/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" "b/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" new file mode 100644 index 0000000..dab99ac --- /dev/null +++ "b/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" @@ -0,0 +1,1258 @@ +# 兜兜网盘api接口文档 + +**简介**: 网盘系统后端api接口文档 + +**host**: cloud.api.novelweb.cn + +**basePath**: / + +**服务Url**: https://cloud.api.novelweb.cn/ + +**邮箱**: novel-web@novelweb.cn + +**Version**: 3.0 + +[TOC] + +# 更新记录 +## 2021 年 8 月 27 日 +第一版api接口文档,提供****用户登录、注册、邮件发送、文件管理等模块的功能接口 + +# 接口全局说明: + +## 消息体字段中可选属性取值说明 + +| 属性 | 说明 | 描述 | +| -------- | -------- | ----- | +|M|必选|必选字段在请求中必须携带,如不携带则判定请求非法| +|O|任意可选|包含任意可选与条件可选,可以不携带,或不反回| +|C|条件可选|| + +## 接口基本消息参数 + +| 参数名称 | 说明 | 例子 | +| -------- | -------- | -------- | +|Cookie|携带用户鉴权信息(登陆时获取)
格式:bjg_sid={token}|Cookie:bjg_sid=c57bcd5a-8aa8-4725-a244-4ac1f81fc869| + +## 全局返回码说明 + +| code | 描述 | +| -------- | -------- | +|200|请求完成| +|500|系统异常,请联系管理人员| +|1|参数异常,校验失败| +|400|数据异常| +|401|token过期,请重新获取| +|403|当前账号没有对应权限| +|405|不被支持的Http请求方式| +|406|数字格式异常| +|415|不支持的媒体类型| +|413|负载过大| +|416|方法参数类型不匹配| +|499|账号被限制登录| + +# 登录注册模块 + +## 密码登录 + +**接口地址**:`/disk-user/cloud-disk-login` + +**请求方式**:`POST` + +**请求数据类型**:`application/x-www-form-urlencoded` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**: +
通过用户登录接口可以获取token,以及当前登录的用户信息
+token是开发者的全局唯一接口调用凭据,开发者调用各接口时都需使用token。
+token的有效期目前为5个小时,需定时刷新
+ +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | -------- | -------- | +|username|用户名、邮箱|M|string| +|password|密码|M|string| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|数据对象|object|C| +|  requestUrl|当前请求对象的Host|string|M| +|  token|鉴权凭证|string|M| +|  userBanTimeFormat|账号被封禁的时间(天)|string|C| +|  userInfo|用户数据|object|C| +|    available|当前账号是否可用|boolean|M| +|    createTime|创建时间|string|M| +|    updateTime|更新时间|string|M| +|    userAvatar|用户头像|string|M| +|    userBanTime|账号被封禁的时间(秒)
-1:永久,0:正常|integer|M| +|    userEmail|用户邮箱|string|M| +|    userId|用户唯一标识|integer|M| +|    userName|用户名|string|M| +|    userPwd|用户密文密码|string|M| +|    userReason|当前账号不可用原因|string|O| +|    userTotalDiskCapacity|磁盘总容量(字节)|number|M| +|    userUsedDiskCapacity|已用磁盘容量(字节)|number|M| +|    userRemainingDiskCapacity|剩余磁盘容量(字节)|number|M| +|    userTotalTraffic|总流量(字节)|number|M| +|    userUsedTraffic|已用流量(字节)|number|M| +|    userRemainingTraffic|剩余流量(字节)|number|M| +|    userUnlockTime|账号解封时间|string|O| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "200", + "data": { + "requestUrl": "", + "token": "", + "userBanTimeFormat": "", + "userInfo": { + "available": true, + "createTime": "", + "updateTime": "", + "userAvatar": "", + "userBanTime": 0, + "userEmail": "", + "userId": 0, + "userName": "", + "userPwd": "", + "userReason": "", + "userTotalDiskCapacity": 0, + "userUsedDiskCapacity": 0, + "userRemainingDiskCapacity": 0, + "userTotalTraffic": 0, + "userUsedTraffic": 0, + "userRemainingTraffic": 0, + "userUnlockTime": "" + } + }, + "message": "请求成功" +} +``` + +**请求示例**: + +```http request +POST /disk-user/cloud-disk-login?username=&password= +HTTP/1.1 +Host: cloud.api.novelweb.cn +``` + +## 退出登陆 + +**接口地址**:`/disk-user/logout` + +**请求方式**:`GET` + +**请求数据类型**:`application/x-www-form-urlencoded` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**: +
手动退出登录的状态,删除对应的token + +**请求参数**: + +暂无 + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|对象|string|C| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "200", + "data": "已退出登录", + "message": "请求成功" +} +``` + +**请求示例**: + +```http request +GET /disk-user/logout +HTTP/1.1 +Host: cloud.api.novelweb.cn +Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 +``` + +## 用户注册 + +**接口地址**:`/disk-user/register` + +**请求方式**:`POST` + +**请求数据类型**:`application/json` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**:

注册新用户

+ +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | -------- | -------- | +|  securityCode|邮箱验证码|M|string| +|  userAvatar|用户头像|M|string| +|  userEmail|用户邮箱|M|string| +|  userId|用户唯一标识(注册时写0)|M|integer| +|  userName|用户名|M|string| +|  userPwd|用户密码|M|string| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|对象|string|C| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "200", + "data": "注册成功", + "message": "请求成功" +} +``` + +**请求示例**: + +```http request +POST /disk-user/register +HTTP/1.1 +Host: cloud.api.novelweb.cn +Content-Type: application/json + +{ + "securityCode": "", + "userAvatar": "", + "userEmail": "", + "userId": 0, + "userName": "", + "userPwd": "" +} +``` + +## 重置用户密码 + +**接口地址**:`/disk-user/reset-password` + +**请求方式**:`POST` + +**请求数据类型**:`application/json` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**:

忘记密码时,可以使用此接口重置用户密码

+ +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | -------- | -------- | +|  securityCode|验证码|M|string| +|  userEmail|用户邮箱|M|string| +|  userPwd|用户密码|M|string| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|对象|string|C| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "", + "data": "", + "message": "" +} +``` + +**请求示例**: + +```http request +POST /disk-user/reset-password +HTTP/1.1 +Host: cloud.api.novelweb.cn +Content-Type: application/json + +{ + "securityCode": "", + "userEmail": "", + "userPwd": "" +} +``` + +## 发送邮箱验证码 + +**接口地址**:`/disk-user/send-security-code` + +**请求方式**:`GET` + +**请求数据类型**:`application/x-www-form-urlencoded` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**:

指定邮箱,发送邮箱验证码

+ +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | ----- | -------- | +|email|用户邮箱|M|string| +|exist|是否校验邮箱|O|boolean| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|对象|string|C| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "200", + "data": "验证码已发送", + "message": "请求成功" +} +``` + +请求示例: + +```http request +GET /disk-user/send-security-code?email=&exist= +HTTP/1.1 +Host: cloud.api.novelweb.cn +``` + +## 校验邮箱验证码 + +**接口地址**:`/disk-user/verify-security-code` + +**请求方式**:`GET` + +**请求数据类型**:`application/x-www-form-urlencoded` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**:

校验缓存中的邮箱验证码是否与请求中的邮箱验证码匹配

+ +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | ----- | -------- | +|email|邮箱|M|string| +|code|验证码|M|string| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|对象|boolean|C| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "200", + "data": true, + "message": "请求成功" +} +``` + +请求示例: + +```http request +GET /disk-user/verify-security-code?email=&code= +HTTP/1.1 +Host: cloud.api.novelweb.cn +``` + +# 用户模块 + +## 修改用户信息 + +**接口地址**:`/disk-user/update-user` + +**请求方式**:`POST` + +**请求数据类型**:`application/x-www-form-urlencoded` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**:

修改用户基础信息

+ +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | ----- | -------- | +|securityCode|邮箱验证码(修改邮箱时必填)|C|string| +|sourcePassword|原始密码(修改密码时必填)|C|string| +|userAvatar|用户头像|M|string| +|userEmail|用户邮箱|M|string| +|userId|用户唯一标识|M|number| +|userName|用户名|M|string| +|userPwd|用户新密码(修改密码时必填)|C|string| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|对象|string|C| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "200", + "data": "修改成功", + "message": "请求成功" +} +``` + +请求示例: + +```http request +GET /disk-user/update-user?userAvatar=&userEmail=&userId=&userName= +HTTP/1.1 +Host: cloud.api.novelweb.cn +Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 +``` + +## 获取当前登录的用户信息 + +**接口地址**:`/disk-user/user-info` + +**请求方式**:`GET` + +**请求数据类型**:`application/x-www-form-urlencoded` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**:

根据登录token,获取当前有效的用户对象信息

+ +**请求参数**: + +暂无 + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|数据对象|object|C| +|  token|鉴权凭证|string|M| +|  userInfo|用户数据|object|C| +|    available|当前账号是否可用|boolean|M| +|    createTime|创建时间|string|M| +|    updateTime|更新时间|string|M| +|    userAvatar|用户头像|string|M| +|    userBanTime|账号被封禁的时间(秒)
-1:永久,0:正常|integer|M| +|    userEmail|用户邮箱|string|M| +|    userId|用户唯一标识|integer|M| +|    userName|用户名|string|M| +|    userPwd|用户密文密码|string|M| +|    userReason|当前账号不可用原因|string|O| +|    userTotalDiskCapacity|磁盘总容量(字节)|number|M| +|    userUsedDiskCapacity|已用磁盘容量(字节)|number|M| +|    userRemainingDiskCapacity|剩余磁盘容量(字节)|number|M| +|    userTotalTraffic|总流量(字节)|number|M| +|    userUsedTraffic|已用流量(字节)|number|M| +|    userRemainingTraffic|剩余流量(字节)|number|M| +|    userUnlockTime|账号解封时间|string|O| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "200", + "data": { + "requestUrl": "", + "token": "", + "userInfo": { + "available": true, + "createTime": "", + "updateTime": "", + "userAvatar": "", + "userBanTime": 0, + "userEmail": "", + "userId": 0, + "userName": "", + "userPwd": "", + "userReason": "", + "userTotalDiskCapacity": 0, + "userUsedDiskCapacity": 0, + "userRemainingDiskCapacity": 0, + "userTotalTraffic": 0, + "userUsedTraffic": 0, + "userRemainingTraffic": 0, + "userUnlockTime": "" + } + }, + "message": "请求成功" +} +``` + +请求示例: + +```http request +GET /disk-user/user-info +HTTP/1.1 +Host: cloud.api.novelweb.cn +Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 +``` + +## 修改用户头像 + +**接口地址**:`/uploader/uploader-avatar` + +**请求方式**:`POST` + +**请求数据类型**:`multipart/form-data` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**:

修改用户头像信息

+ +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | ----- | -------- | +|file|文件对象|M|file| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | schema | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|用户头像地址|string|C| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "", + "data": "", + "message": "" +} +``` + +**请求示例** + +```http request +GET /uploader/uploader-avatar +HTTP/1.1 +Host: cloud.api.novelweb.cn +Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 +Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW + +----WebKitFormBoundary7MA4YWxkTrZu0gW +Content-Disposition: form-data; name="file"; filename="/20210730131952.jpg" +Content-Type: image/jpeg + +(data) +----WebKitFormBoundary7MA4YWxkTrZu0gW +``` + +# 网盘文件模块 + +## 获取文件上传token + +**接口地址**:`/uploader/token` + +**请求方式**:`POST` + +**请求数据类型**:`application/json` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**: +

获取文件上传所需token,是前端请求七牛云上传必传项

+

也是根据此接口进行文件的创建操作

+

最大可上传20GB的文件

+ +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | ----- | -------- | +|  ossFileEtag|资源的唯一标识,秒传的判断
[七牛etag算法示例](https://github.com/qiniu/qetag)|M|string| +|  ossFileSize|文件大小(字节)|M|integer| +|  userFileName|文件名|M|string| +|  userFileParentId|文件父级标识|M|integer| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|数据对象|object|C| +|  diskUserFile|用户文件信息,秒传时返回|object|C| +|    createTime|创建时间|string|M| +|    fileFolder|是否为文件夹|boolean|M| +|    forbidden|当前文件是否被禁止访问|boolean|M| +|    ossFileEtag|资源的唯一标识|string|M| +|    ossFileMimeType|文件的mime类型|string|M| +|    ossFileSize|文件大小(字节)|integer|M| +|    updateTime|更新时间|string|M| +|    userDynamicDownloadUrl|文件的动态下载链接|string|C| +|    userDynamicPreviewUrl|文件的动态预览链接|string|C| +|    userFileId|文件标识|integer|M| +|    userFileName|文件名|string|M| +|    userFileParentId|文件的父级标识|integer|M| +|    userId|文件关联的用户标识|integer|M| +|  key|云端预存储的key值|string|C| +|  token|文件上传的token|string|C| +|message|描述|string|| + +**响应示例**: + +```json +{ + "code": "", + "data": { + "diskUserFile": { + "createTime": "", + "fileFolder": true, + "forbidden": true, + "ossFileEtag": "", + "ossFileMimeType": "", + "ossFileSize": 0, + "updateTime": "", + "userDynamicDownloadUrl": "", + "userDynamicPreviewUrl": "", + "userFileId": 0, + "userFileName": "", + "userFileParentId": 0, + "userId": 0 + }, + "key": "", + "token": "" + }, + "message": "" +} +``` + +**请求示例**: + +```http request +POST /uploader/token +HTTP/1.1 +Host: cloud.api.novelweb.cn +Content-Type: application/json +Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 + +{ + "ossFileEtag": "", + "ossFileSize": "", + "userFileName": "", + "userFileParentId": "" +} +``` + +## 新建文件夹 + +**接口地址**:`/disk-file/insert-file-folder` + +**请求方式**:`POST` + +**请求数据类型**:`application/json` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**: +

用于创建一个空的文件夹

+ +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | ----- | ------ | +|  userFileId|文件夹标识(创建时写0)|M|integer| +|  userFileName|文件夹名称|M|string| +|  userFileParentId|文件夹父级标识(0为根目录)|M|integer| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|数据对象|object|C| +|  createTime|创建时间|string|M| +|  fileFolder|是否为文件夹|boolean|M| +|  forbidden|是否被禁止访问|boolean|M| +|  ossFileEtag|资源的唯一标识|string|M| +|  ossFileMimeType|文件的mime类型|string|M| +|  ossFileSize|文件大小(字节)|integer|M| +|  updateTime|更新时间|string|M| +|  userDynamicDownloadUrl|文件的动态下载链接|string|O| +|  userDynamicPreviewUrl|文件的动态预览链接|string|O| +|  userFileId|文件标识|integer|M| +|  userFileName|文件名称|string|M| +|  userFileParentId|文件的父级标识|integer|M| +|  userId|用户标识|integer|M| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "", + "data": { + "createTime": "", + "fileFolder": true, + "forbidden": true, + "ossFileEtag": "", + "ossFileMimeType": "", + "ossFileSize": 0, + "updateTime": "", + "userDynamicDownloadUrl": "", + "userDynamicPreviewUrl": "", + "userFileId": 0, + "userFileName": "", + "userFileParentId": 0, + "userId": 0 + }, + "message": "" +} +``` + +**请求示例**: + +```http request +POST /disk-file/insert-file-folder +HTTP/1.1 +Host: cloud.api.novelweb.cn +Content-Type: application/json +Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 + +{ + "userFileId": "", + "userFileName": "", + "userFileParentId": "" +} +``` + +## 重命名文件 + +**接口地址**:`/disk-file/rename-file` + +**请求方式**:`POST` + +**请求数据类型**:`application/x-www-form-urlencoded` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**: +

更改 文件、文件夹 的名称

+ +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | ----- | ------ | +|newUserFileName|新文件名|M|string| +|userFileId|文件标识|M|integer| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|对象|object|C| +|  createTime|创建时间|string|M| +|  fileFolder|是否为文件夹|boolean|M| +|  forbidden|当前文件是否被禁止访问|boolean|M| +|  ossFileEtag|资源的唯一标识|string|M| +|  ossFileMimeType|文件的mime类型|string|M| +|  ossFileSize|文件大小(字节)|integer|M| +|  updateTime|更新时间|string|M| +|  userDynamicDownloadUrl|文件的动态下载链接|string|C| +|  userDynamicPreviewUrl|文件的动态预览链接|string|C| +|  userFileId|文件标识|integer|M| +|  userFileName|文件名称|string|M| +|  userFileParentId|文件的父级标识|integer|M| +|  userId|用户标识|integer|M| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "", + "data": { + "createTime": "", + "fileFolder": true, + "forbidden": true, + "ossFileEtag": "", + "ossFileMimeType": "", + "ossFileSize": 0, + "updateTime": "", + "userDynamicDownloadUrl": "", + "userDynamicPreviewUrl": "", + "userFileId": 0, + "userFileName": "", + "userFileParentId": 0, + "userId": 0 + }, + "message": "" +} +``` + +**请求示例**: + +```http request +POST /disk-file/rename-file?newUserFileName=&userFileId= +HTTP/1.1 +Host: cloud.api.novelweb.cn +Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 +``` + +## 资源文件下载 + +**接口地址**:`/disk-file/resource/download` + +**请求方式**:`GET` + +**请求数据类型**:`application/x-www-form-urlencoded` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**: +

获取文件的临时访问Url,最多可以生成有效时长为12小时的动态链接

+

需要注意的是,此接口如果响应成功,会进行302跳转,跳转的地址为动态生成的资源访问地址

+

资源访问地址有效时长默认为6小时

+ +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | ----- | ------ | +|code|提取码|O|string| +|fileId|文件唯一标识|M|integer| +|preview|是否获取用于预览的链接|O|boolean| +|shareKey|文件的key值(分享下载时使用)|C|string| +|shareShort|短链(分享下载时使用)|C|string| +|time|过期时间,大于10,小于43200(秒)|O|integer| + +**响应状态**: + +| 状态码 | 说明 | +| -------- | -------- | +|302|OK| + +**请求示例**: + +```http request +GET /disk-file/resource/download?fileId=&preview=false +HTTP/1.1 +Host: cloud.api.novelweb.cn +Cookie: bjg_sid=ab318bdb-4871-4fa8-a736-2e894ee3f507 +``` + +## 查询文件列表 + +**接口地址**:`/disk-file/search` + +**请求方式**:`GET` + +**请求数据类型**:`application/x-www-form-urlencoded` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**: +

用于获取文件列表信息

+ +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | ----- | ------ | +|page|页码|M|integer| +|pageSize|每页大小|M|integer| +|startTime|起始时间(yyyy-MM-dd)|O|string| +|endTime|结束时间(yyyy-MM-dd)|O|string| +|fileFolder|是否为文件夹|O|boolean| +|forbidden|当前文件是否被禁止访问|O|boolean| +|ossFileEtag|资源的唯一标识|O|string| +|ossFileMimeType|文件的mime类型|O|string| +|ossFileSize|文件大小(字节)|O|integer| +|userDynamicExpireIn|下载凭证过期时间(秒)|O|integer| +|userDynamicToken|文件的动态下载凭证|O|string| +|userFileId|文件标识|O|integer| +|userFileName|文件名|O|string| +|userFileParentId|文件的父级标识|O|integer| +|userId|用户标识|O|integer| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|对象|object|C| +|  diskUserFile|文件模块|array|M| +|    createTime|创建时间|string|M| +|    fileFolder|是否为文件夹|boolean|M| +|    forbidden|当前文件是否被禁止访问|boolean|M| +|    ossFileEtag|资源的唯一标识|string|M| +|    ossFileMimeType|文件的mime类型|string|M| +|    ossFileSize|文件大小(字节)|integer|M| +|    updateTime|更新时间|string|M| +|    userDynamicDownloadUrl|文件的动态下载链接|string|C| +|    userDynamicPreviewUrl|文件的动态预览链接|string|C| +|    userFileId|文件标识|integer|M| +|    userFileName|文件名称|string|M| +|    userFileParentId|父级标识(0为根目录)|integer|M| +|    userId|用户标识|integer|M| +|  toTal|总数|integer|M| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "200", + "data": { + "diskUserFile": [ + { + "createTime": "", + "fileFolder": true, + "forbidden": true, + "ossFileEtag": "", + "ossFileMimeType": "", + "ossFileSize": 0, + "updateTime": "", + "userDynamicDownloadUrl": "", + "userDynamicPreviewUrl": "", + "userFileId": 0, + "userFileName": "", + "userFileParentId": 0, + "userId": 0 + } + ], + "toTal": 0 + }, + "message": "请求成功" +} +``` + +**请求示例**: + +```http request +GET /disk-file/search?page=1&pageSize=100&userFileParentId=0 +HTTP/1.1 +Host: cloud.api.novelweb.cn +Cookie: bjg_sid=ab318bdb-4871-4fa8-a736-2e894ee3f507 +``` + +## 批量复制文件 + +**接口地址**:`/disk-file/copy-batch-file` + +**请求方式**:`POST` + +**请求数据类型**:`application/json` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**: +

进行文件、文件夹的批量复制操作,最多支持50个文件、文件夹的复制

+ + +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | ----- | ------ | +|shareShort|短链|O|string| +|code|短链提取码|C|string| +|targetFileId|目标文件夹标识(必须是文件夹)|M|integer| +|copyFileInfo|批量复制的参数|M|array| +|  shareKey|文件的key值|O|string| +|  fromFileId|源文件标识|M|integer| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|对象|object|C| +|  fromUserFileList|进行复制的源文件信息|array|C| +|    createTime|创建时间|string|M| +|    fileFolder|是否为文件夹|boolean|M| +|    forbidden|当前文件是否被禁止访问|boolean|M| +|    ossFileEtag|资源的唯一标识|string|M| +|    ossFileMimeType|文件的mime类型|string|M| +|    ossFileSize|文件大小(字节)|integer|M| +|    updateTime|更新时间|string|M| +|    userDynamicDownloadUrl|文件的动态下载链接|string|C| +|    userDynamicPreviewUrl|文件的动态预览链接|string|C| +|    userFileId|文件标识|integer|M| +|    userFileName|文件名|string|M| +|    userFileParentId|文件的父级标识|integer|M| +|    userId|用户标识|integer|M| +|  userInfo|当前用户的缓存信息|object|C| +|    available|当前账号是否可用|boolean|M| +|    createTime|创建时间|string|M| +|    updateTime|更新时间|string|M| +|    userAvatar|用户头像|string|M| +|    userBanTime|账号被封禁的时间(秒)
-1:永久,0:正常|integer|M| +|    userEmail|用户邮箱|string|M| +|    userId|用户唯一标识|integer|M| +|    userName|用户名|string|M| +|    userPwd|用户密文密码|string|M| +|    userReason|当前账号不可用原因|string|O| +|    userTotalDiskCapacity|磁盘总容量(字节)|number|M| +|    userUsedDiskCapacity|已用磁盘容量(字节)|number|M| +|    userRemainingDiskCapacity|剩余磁盘容量(字节)|number|M| +|    userTotalTraffic|总流量(字节)|number|M| +|    userUsedTraffic|已用流量(字节)|number|M| +|    userRemainingTraffic|剩余流量(字节)|number|M| +|    userUnlockTime|账号解封时间|string|O| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "200", + "data": { + "fromUserFileList": [ + { + "createTime": "", + "fileFolder": true, + "forbidden": true, + "ossFileEtag": "", + "ossFileMimeType": "", + "ossFileSize": 0, + "updateTime": "", + "userDynamicDownloadUrl": "", + "userDynamicPreviewUrl": "", + "userFileId": 0, + "userFileName": "", + "userFileParentId": 0, + "userId": 0 + } + ], + "userInfo": { + "available": true, + "createTime": "", + "updateTime": "", + "userAvatar": "", + "userBanTime": 0, + "userEmail": "", + "userId": 0, + "userName": "", + "userPwd": "", + "userReason": "", + "userTotalDiskCapacity": 0, + "userUsedDiskCapacity": 0, + "userRemainingDiskCapacity": 0, + "userTotalTraffic": 0, + "userUsedTraffic": 0, + "userRemainingTraffic": 0, + "userUnlockTime": "" + } + }, + "message": "请求成功" +} +``` + +**请求示例**: + +```http request +POST /disk-file/copy-batch-file +HTTP/1.1 +Host: cloud.api.novelweb.cn +Content-Type: application/json +Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 + +{ + "targetFileId": 0, + "copyFileInfo": [{ + "fromFileId": 0 + }] +} +``` + +## 批量移动文件 + +**接口地址**:`/disk-file/move-batch-file` + +**请求方式**:`POST` + +**请求数据类型**:`application/json` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**: +

进行文件、文件夹的批量移动的操作,最多支持50个文件、文件夹的移动

+ + +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | ----- | ------ | +|  moveFileInfo|文件移动参数|M|array| +|    fromFileId|源文件标识|M|integer| +|  targetFileId|目标文件夹标识(只能是文件夹)|M|integer| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|对象|array|C| +|  createTime|创建时间|string|M| +|  fileFolder|是否为文件夹|boolean|M| +|  forbidden|是否被禁止访问|boolean|M| +|  ossFileEtag|资源的唯一标识|string|M| +|  ossFileMimeType|文件的mime类型|string|M| +|  ossFileSize|文件大小(字节)|integer|M| +|  updateTime|更新时间|string|M| +|  userDynamicDownloadUrl|文件的动态下载链接|string|C| +|  userDynamicPreviewUrl|文件的动态预览链接|string|C| +|  userFileId|文件标识|integer|M| +|  userFileName|文件名称|string|M| +|  userFileParentId|文件的父级标识|integer|M| +|  userId|用户标识|integer|M| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "", + "data": [ + { + "createTime": "", + "fileFolder": true, + "forbidden": true, + "ossFileEtag": "", + "ossFileMimeType": "", + "ossFileSize": 0, + "updateTime": "", + "userDynamicDownloadUrl": "", + "userDynamicPreviewUrl": "", + "userFileId": 0, + "userFileName": "", + "userFileParentId": 0, + "userId": 0 + } + ], + "message": "" +} +``` + +**请求示例**: + +```http request +POST /disk-file/move-batch-file +HTTP/1.1 +Host: cloud.api.novelweb.cn +Content-Type: application/json +Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 + +{ + "moveFileInfo": [ + { + "fromFileId": 0 + } + ], + "targetFileId": 0 +} +``` + +## 批量删除文件 + +**接口地址**:`/disk-file/delete-batch-file` + +**请求方式**:`POST` + +**请求数据类型**:`application/json` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**: +

进行文件、文件夹的批量删除的操作,最多支持50个文件、文件夹的删除

+ + +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | ----- | ------ | +|list|文件标识数据集合|M|array| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|对象|用户模块|C| +|  available|当前账号是否可用|boolean|M| +|  createTime|创建时间|string|M| +|  updateTime|更新时间|string|M| +|  userAvatar|用户头像|string|M| +|  userBanTime|账号被封禁的时间(秒)
-1:永久,0:正常|integer|M| +|  userEmail|用户邮箱|string|M| +|  userId|用户唯一标识|integer|M| +|  userName|用户名|string|M| +|  userPwd|用户密文密码|string|M| +|  userReason|当前账号不可用原因|string|O| +|  userTotalDiskCapacity|磁盘总容量(字节)|number|M| +|  userUsedDiskCapacity|已用磁盘容量(字节)|number|M| +|  userRemainingDiskCapacity|剩余磁盘容量(字节)|number|M| +|  userTotalTraffic|总流量(字节)|number|M| +|  userUsedTraffic|已用流量(字节)|number|M| +|  userRemainingTraffic|剩余流量(字节)|number|M| +|  userUnlockTime|账号解封时间|string|O| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "", + "data": { + "available": true, + "createTime": "", + "updateTime": "", + "userAvatar": "", + "userBanTime": 0, + "userEmail": "", + "userId": 0, + "userName": "", + "userPwd": "", + "userReason": "", + "userTotalDiskCapacity": 0, + "userUsedDiskCapacity": 0, + "userRemainingDiskCapacity": 0, + "userTotalTraffic": 0, + "userUsedTraffic": 0, + "userRemainingTraffic": 0, + "userUnlockTime": "" + }, + "message": "" +} +``` -- Gitee From 856f0d74657bdcbc4b04ffa5709e7da26c95d2ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=88=E4=B9=8B=E7=8D=A0?= <1224073217@qq.com> Date: Fri, 27 Aug 2021 14:41:07 +0000 Subject: [PATCH 04/13] =?UTF-8?q?docs:=20=E4=BF=AE=E6=94=B9=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" "b/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" index dab99ac..909ee1d 100644 --- "a/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" +++ "b/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" @@ -16,7 +16,7 @@ # 更新记录 ## 2021 年 8 月 27 日 -第一版api接口文档,提供****用户登录、注册、邮件发送、文件管理等模块的功能接口 +第一版api接口文档,提供用户登录、注册、邮件发送、文件管理等模块的功能接口 # 接口全局说明: -- Gitee From 62cacd63387438df39995e0e912353a1d6c66a6d Mon Sep 17 00:00:00 2001 From: Dan Date: Tue, 31 Aug 2021 19:20:01 +0800 Subject: [PATCH 05/13] =?UTF-8?q?fix:=20=E5=8F=96=E6=B6=88=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=B9=E7=9A=84=E5=A4=8D=E5=88=B6=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/index.vue | 14 ++++++++++---- ...\221\347\233\230API\346\226\207\346\241\243.md" | 5 +++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/layout/index.vue b/src/layout/index.vue index a94de9e..c698d28 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -582,11 +582,15 @@ export default { }) // 如果选中的这一条数据是文件夹 ,则不显示 文件详情 按钮 this.operateBtn[5].show = !selectData[0]['fileFolder'] + // 如果是文件夹的,则不显示复制按钮 + this.operateBtn[2].show = !selectData[0]['fileFolder'] } if (selectData.length > 1) { // 如果选中了不止一条数据,则 重命名、文件详情 按钮不显示 this.operateBtn[1].show = false this.operateBtn[5].show = false + // 如果选中的数据中包含了文件夹,则不显示复制按钮 + this.operateBtn[2].show = selectData.filter(res => res['fileFolder']).length < 1 } }, // 深度监听 @@ -1243,10 +1247,12 @@ export default { // 清空文件预处理信息队列后,重新添加数据 this.filePreprocessing = [] selectData.forEach(res => { - this.filePreprocessing.push({ - file: res, - type: type - }) + if (!res['fileFolder']) { + this.filePreprocessing.push({ + file: res, + type: type + }) + } }) }, // ============================== 页面左侧菜单栏调用的方法 diff --git "a/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" "b/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" index dab99ac..e85868f 100644 --- "a/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" +++ "b/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" @@ -42,7 +42,7 @@ |500|系统异常,请联系管理人员| |1|参数异常,校验失败| |400|数据异常| -|401|token过期,请重新获取| +|401|授权异常| |403|当前账号没有对应权限| |405|不被支持的Http请求方式| |406|数字格式异常| @@ -978,7 +978,8 @@ Cookie: bjg_sid=ab318bdb-4871-4fa8-a736-2e894ee3f507 **响应数据类型**:`application/json;charset=UTF-8` **接口描述**: -

进行文件、文件夹的批量复制操作,最多支持50个文件、文件夹的复制

+

进行文件的批量复制操作,最多支持50个文件的复制

+

注:目前只支持对文件的复制,如果请求不包含文件,则会抛出异常提示

**请求参数**: -- Gitee From 427079f65973c9f72c8b5f9588bfb1c518cdc6c6 Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 2 Sep 2021 18:15:24 +0800 Subject: [PATCH 06/13] fix: README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 6f2f050..e280543 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,10 @@ https://cloudtest.api.novelweb.cn 开发环境中需要修改上传的存储区域,由cnEast2更改为z0 +## api文档 +如果您对现有的UI界面感到不满,也可以根据api文档自行实现UI界面
+附:[网盘api文档](兜兜网盘API文档.md) + ## 页面预览 #### 登录: -- Gitee From 39a0505e0445505cb611815e7d0027d2514cead2 Mon Sep 17 00:00:00 2001 From: Dan Date: Sat, 4 Sep 2021 18:04:36 +0800 Subject: [PATCH 07/13] =?UTF-8?q?fix:=20api=E6=96=87=E6=A1=A3=E5=8F=98?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...347\233\230API\346\226\207\346\241\243.md" | 443 +++++++++++++++++- 1 file changed, 440 insertions(+), 3 deletions(-) diff --git "a/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" "b/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" index c06131b..d105875 100644 --- "a/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" +++ "b/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" @@ -15,7 +15,15 @@ [TOC] # 更新记录 + +## 2021 年 9 月 2 日 +

增加了文件分享模块功能接口

+

发送邮箱验证码接口的描述信息变更

+

修改用户信息接口的请求示例

+

批量删除文件接口增加请求示例

+ ## 2021 年 8 月 27 日 + 第一版api接口文档,提供用户登录、注册、邮件发送、文件管理等模块的功能接口 # 接口全局说明: @@ -311,7 +319,10 @@ Content-Type: application/json **响应数据类型**:`application/json;charset=UTF-8` -**接口描述**:

指定邮箱,发送邮箱验证码

+**接口描述**: +

指定邮箱,发送邮箱验证码

+

同一个邮箱会有1分钟发送间隔时间

+

参数exist为true时,会校验邮箱是否存在

**请求参数**: @@ -438,7 +449,7 @@ Host: cloud.api.novelweb.cn 请求示例: ```http request -GET /disk-user/update-user?userAvatar=&userEmail=&userId=&userName= +POST /disk-user/update-user?userAvatar=&userEmail=&userId=&userName= HTTP/1.1 Host: cloud.api.novelweb.cn Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 @@ -979,6 +990,7 @@ Cookie: bjg_sid=ab318bdb-4871-4fa8-a736-2e894ee3f507 **接口描述**:

进行文件的批量复制操作,最多支持50个文件的复制

+

通过请求参数中shareShort、shareKey可以对其他用户分享的文件进行复制

注:目前只支持对文件的复制,如果请求不包含文件,则会抛出异常提示

@@ -990,7 +1002,7 @@ Cookie: bjg_sid=ab318bdb-4871-4fa8-a736-2e894ee3f507 |code|短链提取码|C|string| |targetFileId|目标文件夹标识(必须是文件夹)|M|integer| |copyFileInfo|批量复制的参数|M|array| -|  shareKey|文件的key值|O|string| +|  shareKey|文件的key值(短链存在时必填)|C|string| |  fromFileId|源文件标识|M|integer| **响应参数**: @@ -1257,3 +1269,428 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 "message": "" } ``` + +**请求示例**: + +```http request +POST /disk-file/delete-batch-file +HTTP/1.1 +Host: cloud.api.novelweb.cn +Content-Type: application/json +Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 + +[1,2,3,4] +``` + +# 文件分享模块 + +## 创建文件分享链接 + +**接口地址**:`/disk-share/create-share` + +**请求方式**:`POST` + +**请求数据类型**:`application/json` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**: +

用于创建文件分享短链,通过短链可以访问被分享的文件

+

最多只能同时分享50个文件、文件夹

+ +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | ----- | ------ | +|encrypt|是否需要设置提取码|O|boolean| +|files|需要分享的文件标识列表|M|array| +|time|过期时间(秒)
最大为604800(一周),最小为-1(永不过期)|O|integer| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|数据对象|object|C| +|  expiration|是否已经过期|boolean|M| +|  includeFolder|是否包含文件夹|boolean|M| +|  shareCode|提取码|string|C| +|  shareExpirationTime|过期时间(秒)
最大为604800(一周),最小为-1(永不过期)|integer|M| +|  shareExpirationTimeFormat|过期时间内容格式化|string|M| +|  shareFileIds|进行分享的文件标识
(多个文件标识逗号分割)|string|M| +|  shareFileName|进行分享的第一个文件名|string|M| +|  shareId|分享主键标识|integer|M| +|  shareShort|分享的唯一短链|string|M| +|  shareShortUrl|分享链接|string|M| +|  shareUserId|进行分享的用户标识|integer|M| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "", + "data": { + "expiration": false, + "includeFolder": false, + "shareCode": "", + "shareExpirationTime": 0, + "shareExpirationTimeFormat": "", + "shareFileIds": "", + "shareFileName": "", + "shareId": 0, + "shareShort": "", + "shareShortUrl": "", + "shareUserId": 0 + }, + "message": "" +} +``` + +**请求示例**: + +```http request +POST /disk-share/create-share +HTTP/1.1 +Host: cloud.api.novelweb.cn +Content-Type: application/json +Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 + +{ + "encrypt": false, + "files": [1,2,3], + "time": -1 +} +``` + +## 批量取消分享链接 + +**接口地址**:`/disk-share/cancel-share` + +**请求方式**:`POST` + +**请求数据类型**:`application/json` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**: +

用于取消文件的分享操作,取消分享后无法再通过分享短链进行访问

+

最多可以同时操作120条数据

+ +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | ----- | ------ | +|shareId|分享标识集合|M|array| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|对象|string|C| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "200", + "data": "", + "message": "取消外链分享成功" +} +``` + +**请求示例**: + +```http request +POST /disk-share/create-share +HTTP/1.1 +Host: cloud.api.novelweb.cn +Content-Type: application/json +Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 + +{ + "shareId": [1,2,3,4] +} +``` + +## 查询分享记录列表 + +**接口地址**:`/disk-share/search` + +**请求方式**:`GET` + +**请求数据类型**:`application/x-www-form-urlencoded` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**: +

用于获取个人分享记录信息

+ +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | ----- | ------ | +|page|页码|M|integer| +|pageSize|每页大小|M|integer| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|对象|array|C| +|    createTime|创建时间|string|M| +|    expiration|是否已经过期|boolean|M| +|    includeFolder|是否包含文件夹|boolean|M| +|    shareCode|提取码|string|C| +|    shareDownloadCount|下载次数|integer|M| +|    shareExpirationTime|过期时间(秒)
最大为604800(一周),最小为-1(永不过期)|integer|M| +|    shareExpirationTimeFormat|过期时间内容格式化|string|M| +|    shareFileIds|进行分享的文件标识
(多个文件标识逗号分割)|string|M| +|    shareFileName|进行分享的第一个文件名|string|M| +|    shareId|分享主键标识|integer|M| +|    shareSaveCount|保存次数|integer|M| +|    shareShort|分享短链|string|M| +|    shareShortUrl|访问链接|string|M| +|    shareUserId|用户标识|integer|M| +|    shareViewCount|浏览次数|integer|M| +|    updateTime|更新时间|string|M| +|  toTal|总数|integer|M| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "200", + "data": { + "diskShare": { + "createTime": "", + "expiration": false, + "includeFolder": false, + "shareCode": "", + "shareDownloadCount": 0, + "shareExpirationTime": 0, + "shareExpirationTimeFormat": "", + "shareFileIds": "", + "shareFileName": "", + "shareId": 0, + "shareSaveCount": 0, + "shareShort": "", + "shareShortUrl": "", + "shareUserId": 0, + "shareViewCount": 0, + "updateTime": "" + }, + "toTal": 0 + }, + "message": "请求成功" +} +``` + +**请求示例**: + +```http request +GET /disk-share/search?page=1&pageSize=10 +HTTP/1.1 +Host: cloud.api.novelweb.cn +Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 +``` + +## 获取分享链接详情 + +**接口地址**:`/disk-share/share-detail` + +**请求方式**:`GET` + +**请求数据类型**:`application/x-www-form-urlencoded` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**: +

通过此接口获取分享链接的根目录文件

+ +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | ----- | ------ | +|shareShort|分享的短链|M|string| +|code|提取码|C|string| + +**响应状态**: + +| 状态码 | 说明 | +| -------- | -------- | +|200|响应成功| +|404|分享链接不存在| +|412|分享链接已过期| +|428|分享链接需要提取码| +|499|分享链接的提取码错误| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|对象|object|C| +|  createTime|创建时间|string|M| +|  fileInfo|分享的文件信息|array|C| +|    createTime|创建时间|string|M| +|    fileFolder|是否为文件夹|boolean|M| +|    forbidden|当前文件是否被禁止访问|boolean|M| +|    ossFileEtag|资源的唯一标识|string|M| +|    ossFileMimeType|文件的mime类型|string|M| +|    ossFileSize|文件大小(字节)|integer|M| +|    shareKey|文件的key值|string|M| +|    updateTime|更新时间|string|M| +|    userDynamicDownloadUrl|文件的动态下载链接|string|C| +|    userDynamicPreviewUrl|文件的动态预览链接|string|C| +|    userFileId|文件标识|integer|M| +|    userFileName|文件名称|string|M| +|    userFileParentId|父级标识(0为根目录)|integer|M| +|    userId|用户标识|integer|M| +|  shareExpirationTime|过期时间(秒)
最大为604800(一周),最小为-1(永不过期)|integer|M| +|  shareExpirationTimeFormat|过期时间内容格式化|string|M| +|  shareFileName|进行分享的第一个文件名|string|M| +|  userInfo|文件所属用户信息|object|M| +|    userAvatar|用户头像|string|M| +|    userId|用户标识|integer|M| +|    userName|用户名|string|M| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "200", + "data": { + "createTime": "", + "fileInfo": [ + { + "createTime": "", + "fileFolder": true, + "forbidden": true, + "ossFileEtag": "", + "ossFileMimeType": "", + "ossFileSize": 0, + "shareKey": "", + "updateTime": "", + "userDynamicDownloadUrl": "", + "userDynamicPreviewUrl": "", + "userFileId": 0, + "userFileName": "", + "userFileParentId": 0, + "userId": 0 + } + ], + "shareExpirationTime": 0, + "shareExpirationTimeFormat": "", + "shareFileName": "", + "userInfo": { + "userAvatar": "", + "userId": 0, + "userName": "" + } + }, + "message": "请求成功" +} +``` + +**请求示例**: + +```http request +GET /disk-share/share-detail?shareShort=E5DF2D2834950A86EEA0&code= +HTTP/1.1 +Host: cloud.api.novelweb.cn +``` + +## 查询分享的文件列表 + +**接口地址**:`/disk-share/share-file` + +**请求方式**:`GET` + +**请求数据类型**:`application/x-www-form-urlencoded` + +**响应数据类型**:`application/json;charset=UTF-8` + +**接口描述**: +

获取到分享链接的根目录文件后,通过此接口获取根目录下的文件列表

+

首次请求时,参数中的shareKey为获取根目录时所返回的shareKey字段

+

获取文件列表时有5分钟左右的缓存,不能实时同步文件信息

+ + +**请求参数**: + +| 参数名称 | 参数说明 | 约束 | 数据类型 | +| -------- | -------- | ----- | ------ | +|page|页码|M|integer| +|pageSize|每页大小|M|integer| +|code|提取码|C|string| +|shareKey|文件的key值|M|string| +|shareShort|短链|M|string| +|userFileParentId|父级标识(0为根目录)|M|integer| + +**响应参数**: + +| 参数名称 | 参数说明 | 类型 | 约束 | +| -------- | -------- | ----- |----- | +|code|状态码|string|M| +|data|数据对象|object|C| +|  diskUserFile|文件模块|array|M| +|    createTime|创建时间|string|M| +|    fileFolder|是否为文件夹|boolean|M| +|    forbidden|当前文件是否被禁止访问|boolean|M| +|    ossFileEtag|资源的唯一标识|string|M| +|    ossFileMimeType|文件的mime类型|string|M| +|    ossFileSize|文件大小(字节)|integer|M| +|    shareKey|文件的key值|string|M| +|    updateTime|更新时间|string|M| +|    userDynamicDownloadUrl|文件的动态下载链接|string|C| +|    userDynamicPreviewUrl|文件的动态预览链接|string|C| +|    userFileId|文件标识|integer|M| +|    userFileName|文件名称|string|M| +|    userFileParentId|父级标识(0为根目录)|integer|M| +|    userId|用户标识|integer|M| +|  toTal|总数|integer|M| +|message|描述|string|M| + +**响应示例**: + +```json +{ + "code": "200", + "data": { + "diskUserFile": [ + { + "createTime": "", + "fileFolder": true, + "forbidden": true, + "ossFileEtag": "", + "ossFileMimeType": "", + "ossFileSize": 0, + "shareKey": "", + "updateTime": "", + "userDynamicDownloadUrl": "", + "userDynamicPreviewUrl": "", + "userFileId": 0, + "userFileName": "", + "userFileParentId": 0, + "userId": 0 + } + ], + "toTal": 0 + }, + "message": "请求成功" +} +``` + +**请求示例**: + +```http request +GET /disk-share/share-file?code=&page=&pageSize=&userFileParentId=&shareShort=&shareKey= +HTTP/1.1 +Host: cloud.api.novelweb.cn +``` -- Gitee From 19f49a07343cee8fbbbec5e64aa185aa43108e34 Mon Sep 17 00:00:00 2001 From: Dan Date: Sat, 4 Sep 2021 18:27:44 +0800 Subject: [PATCH 08/13] =?UTF-8?q?fix:=20=E5=88=86=E4=BA=AB=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=A2=9E=E5=8A=A0=E5=AF=B9=E5=A4=8D=E5=88=B6=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=B9=E7=9A=84=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/share/share-list.vue | 39 +++++++++++++++---- ...347\233\230API\346\226\207\346\241\243.md" | 7 ++++ 2 files changed, 39 insertions(+), 7 deletions(-) diff --git a/src/views/share/share-list.vue b/src/views/share/share-list.vue index 1494605..739a80b 100644 --- a/src/views/share/share-list.vue +++ b/src/views/share/share-list.vue @@ -277,13 +277,25 @@ export default { let fileSize = 0 let copyFileInfo = [] selectData.forEach(res => { - fileSize += res.ossFileSize - copyFileInfo.push({ - fromFileId: res.userFileId, - shareKey: res.shareKey - }) + // 过滤出文件夹 + if (!res['fileFolder']) { + fileSize += res.ossFileSize + copyFileInfo.push({ + fromFileId: res.userFileId, + shareKey: res.shareKey + }) + } }) + if (!copyFileInfo.length) { + this.$message({ + showClose: true, + message: '请选择需要保存的文件', + type: 'error', + duration: 2 * 1000 + }) + } + let userInfo = JSON.parse(token) // 判断上传空间容量 @@ -353,6 +365,19 @@ export default { return } + // 获取所有当前选中的数据 + let selectData = this.fileList.filter(res => res.select && !res['fileFolder']) + if (!selectData.length) { + // 没有数据被选中的 ,抛出一个异常提示 + this.$message({ + showClose: true, + message: '请选择需要保存的文件', + type: 'error', + duration: 2 * 1000 + }) + return + } + // 打开文件夹面板时 取消 body 的滚动条 document.body.setAttribute('style', 'margin: 0; background: #fafafa; overflow: hidden;') this.fileCard.title = '保存' @@ -534,7 +559,7 @@ main { top: 42%; max-width: 16em; } - /deep/ .el-dialog__headerbtn{ + /deep/ .el-dialog__headerbtn { z-index: 999; top: -32px; right: -55px; @@ -566,7 +591,7 @@ main { max-width: 21em; } - /deep/ .el-dialog__headerbtn{ + /deep/ .el-dialog__headerbtn { z-index: 999; top: -32px; right: -55px; diff --git "a/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" "b/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" index d105875..0b3b0b5 100644 --- "a/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" +++ "b/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" @@ -59,6 +59,13 @@ |416|方法参数类型不匹配| |499|账号被限制登录| +## 环境信息 + +| 环境名称 | 地址 | +| -------- | -------- | +|联调环境|https://cloudtest.api.novelweb.cn/| +|生产环境|https://cloud.api.novelweb.cn/| + # 登录注册模块 ## 密码登录 -- Gitee From 4109381b8679f49297f7a104676f8c2c9ab002de Mon Sep 17 00:00:00 2001 From: Dan Date: Wed, 8 Sep 2021 15:31:54 +0800 Subject: [PATCH 09/13] =?UTF-8?q?fix:=20=E5=88=86=E4=BA=AB=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=8F=96=E6=B6=88=E5=AF=B9=E5=A4=8D=E5=88=B6=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=B9=E7=9A=84=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/index.vue | 2 +- src/views/share/share-list.vue | 15 ++++++--------- ...221\347\233\230API\346\226\207\346\241\243.md" | 2 +- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/layout/index.vue b/src/layout/index.vue index c93ee9e..26cdc1c 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -1886,7 +1886,7 @@ export default {
  • SHIFT + Click - 连续选择多个文件或目录
  • CTRL + A - 选择全部文件或目录
  • CTRL + X - 剪切一个或多个文件/文件夹
  • -
  • CTRL + C - 复制一个或多个文件/文件夹
  • +
  • CTRL + C - 复制一个或多个文件
  • CTRL + V - 粘贴一个或多个文件/文件夹
  • Click - 选择或者打开文件/文件夹
  • Double Click - 打开文件/文件夹
  • diff --git a/src/views/share/share-list.vue b/src/views/share/share-list.vue index 4021182..8a1a3d0 100644 --- a/src/views/share/share-list.vue +++ b/src/views/share/share-list.vue @@ -277,14 +277,11 @@ export default { let fileSize = 0 let copyFileInfo = [] selectData.forEach(res => { - // 过滤出文件夹 - if (!res['fileFolder']) { - fileSize += res.ossFileSize - copyFileInfo.push({ - fromFileId: res.userFileId, - shareKey: res.shareKey - }) - } + fileSize += res.ossFileSize + copyFileInfo.push({ + fromFileId: res.userFileId, + shareKey: res.shareKey + }) }) if (!copyFileInfo.length) { @@ -366,7 +363,7 @@ export default { } // 获取所有当前选中的数据 - let selectData = this.fileList.filter(res => res.select && !res['fileFolder']) + let selectData = this.fileList.filter(res => res.select) if (!selectData.length) { // 没有数据被选中的 ,抛出一个异常提示 this.$message({ diff --git "a/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" "b/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" index 0b3b0b5..73e0147 100644 --- "a/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" +++ "b/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" @@ -998,7 +998,7 @@ Cookie: bjg_sid=ab318bdb-4871-4fa8-a736-2e894ee3f507 **接口描述**:

    进行文件的批量复制操作,最多支持50个文件的复制

    通过请求参数中shareShort、shareKey可以对其他用户分享的文件进行复制

    -

    注:目前只支持对文件的复制,如果请求不包含文件,则会抛出异常提示

    +

    注:如果请求中包含文件夹,不会复制文件夹里面的内容

    **请求参数**: -- Gitee From b935ce7b178725d0f0d519949d7bf87ca0a644fe Mon Sep 17 00:00:00 2001 From: Dan <1224073217@qq.com> Date: Mon, 20 Sep 2021 13:56:20 +0800 Subject: [PATCH 10/13] =?UTF-8?q?fix:=20=E6=94=AF=E6=8C=81=E4=BA=86?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=B9=E7=9A=84=E5=A4=8D=E5=88=B6=E6=93=8D?= =?UTF-8?q?=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/index.vue | 16 +-- ...347\233\230API\346\226\207\346\241\243.md" | 109 +++++++++--------- 2 files changed, 60 insertions(+), 65 deletions(-) diff --git a/src/layout/index.vue b/src/layout/index.vue index 26cdc1c..4e88068 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -582,15 +582,11 @@ export default { }) // 如果选中的这一条数据是文件夹 ,则不显示 文件详情 按钮 this.operateBtn[5].show = !selectData[0]['fileFolder'] - // 如果是文件夹的,则不显示复制按钮 - this.operateBtn[2].show = !selectData[0]['fileFolder'] } if (selectData.length > 1) { // 如果选中了不止一条数据,则 重命名、文件详情 按钮不显示 this.operateBtn[1].show = false this.operateBtn[5].show = false - // 如果选中的数据中包含了文件夹,则不显示复制按钮 - this.operateBtn[2].show = selectData.filter(res => res['fileFolder']).length < 1 } }, // 深度监听 @@ -1247,12 +1243,10 @@ export default { // 清空文件预处理信息队列后,重新添加数据 this.filePreprocessing = [] selectData.forEach(res => { - if (!res['fileFolder']) { - this.filePreprocessing.push({ - file: res, - type: type - }) - } + this.filePreprocessing.push({ + file: res, + type: type + }) }) }, // ============================== 页面左侧菜单栏调用的方法 @@ -1886,7 +1880,7 @@ export default {
  • SHIFT + Click - 连续选择多个文件或目录
  • CTRL + A - 选择全部文件或目录
  • CTRL + X - 剪切一个或多个文件/文件夹
  • -
  • CTRL + C - 复制一个或多个文件
  • +
  • CTRL + C - 复制一个或多个文件/文件夹
  • CTRL + V - 粘贴一个或多个文件/文件夹
  • Click - 选择或者打开文件/文件夹
  • Double Click - 打开文件/文件夹
  • diff --git "a/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" "b/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" index 73e0147..496e867 100644 --- "a/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" +++ "b/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" @@ -16,6 +16,13 @@ # 更新记录 +## 2021 年 9 月 20 日 +

    新建文件夹请求参数变更

    +

    文件分享响应数据中删除字段shareFileIds(分享的文件标识)

    +

    优化了批量复制、删除文件夹的相关逻辑,支持子文件夹的复制与删除

    +

    批量删除、移动、分享文件的操作最多支持120个文件、文件夹同时操作

    +

    字段userFileParentId(父级文件标识)、userFileId(文件标识)类型由integer更改为string

    + ## 2021 年 9 月 2 日

    增加了文件分享模块功能接口

    发送邮箱验证码接口的描述信息变更

    @@ -623,7 +630,7 @@ Content-Type: image/jpeg |  ossFileEtag|资源的唯一标识,秒传的判断
    [七牛etag算法示例](https://github.com/qiniu/qetag)|M|string| |  ossFileSize|文件大小(字节)|M|integer| |  userFileName|文件名|M|string| -|  userFileParentId|文件父级标识|M|integer| +|  userFileParentId|文件父级标识|M|string| **响应参数**: @@ -641,9 +648,9 @@ Content-Type: image/jpeg |    updateTime|更新时间|string|M| |    userDynamicDownloadUrl|文件的动态下载链接|string|C| |    userDynamicPreviewUrl|文件的动态预览链接|string|C| -|    userFileId|文件标识|integer|M| +|    userFileId|文件标识|string|M| |    userFileName|文件名|string|M| -|    userFileParentId|文件的父级标识|integer|M| +|    userFileParentId|文件的父级标识|string|M| |    userId|文件关联的用户标识|integer|M| |  key|云端预存储的key值|string|C| |  token|文件上传的token|string|C| @@ -665,9 +672,9 @@ Content-Type: image/jpeg "updateTime": "", "userDynamicDownloadUrl": "", "userDynamicPreviewUrl": "", - "userFileId": 0, + "userFileId": "", "userFileName": "", - "userFileParentId": 0, + "userFileParentId": "", "userId": 0 }, "key": "", @@ -711,9 +718,8 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 | 参数名称 | 参数说明 | 约束 | 数据类型 | | -------- | -------- | ----- | ------ | -|  userFileId|文件夹标识(创建时写0)|M|integer| -|  userFileName|文件夹名称|M|string| -|  userFileParentId|文件夹父级标识(0为根目录)|M|integer| +|userFileName|文件夹名称|M|string| +|userFileParentId|文件夹父级标识(0为根目录)|M|string| **响应参数**: @@ -730,9 +736,9 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 |  updateTime|更新时间|string|M| |  userDynamicDownloadUrl|文件的动态下载链接|string|O| |  userDynamicPreviewUrl|文件的动态预览链接|string|O| -|  userFileId|文件标识|integer|M| +|  userFileId|文件标识|string|M| |  userFileName|文件名称|string|M| -|  userFileParentId|文件的父级标识|integer|M| +|  userFileParentId|文件的父级标识|string|M| |  userId|用户标识|integer|M| |message|描述|string|M| @@ -751,9 +757,9 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 "updateTime": "", "userDynamicDownloadUrl": "", "userDynamicPreviewUrl": "", - "userFileId": 0, + "userFileId": "", "userFileName": "", - "userFileParentId": 0, + "userFileParentId": "", "userId": 0 }, "message": "" @@ -770,7 +776,6 @@ Content-Type: application/json Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 { - "userFileId": "", "userFileName": "", "userFileParentId": "" } @@ -794,7 +799,7 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 | 参数名称 | 参数说明 | 约束 | 数据类型 | | -------- | -------- | ----- | ------ | |newUserFileName|新文件名|M|string| -|userFileId|文件标识|M|integer| +|userFileId|文件标识|M|string| **响应参数**: @@ -811,9 +816,9 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 |  updateTime|更新时间|string|M| |  userDynamicDownloadUrl|文件的动态下载链接|string|C| |  userDynamicPreviewUrl|文件的动态预览链接|string|C| -|  userFileId|文件标识|integer|M| +|  userFileId|文件标识|string|M| |  userFileName|文件名称|string|M| -|  userFileParentId|文件的父级标识|integer|M| +|  userFileParentId|文件的父级标识|string|M| |  userId|用户标识|integer|M| |message|描述|string|M| @@ -832,9 +837,9 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 "updateTime": "", "userDynamicDownloadUrl": "", "userDynamicPreviewUrl": "", - "userFileId": 0, + "userFileId": "", "userFileName": "", - "userFileParentId": 0, + "userFileParentId": "", "userId": 0 }, "message": "" @@ -919,9 +924,9 @@ Cookie: bjg_sid=ab318bdb-4871-4fa8-a736-2e894ee3f507 |ossFileSize|文件大小(字节)|O|integer| |userDynamicExpireIn|下载凭证过期时间(秒)|O|integer| |userDynamicToken|文件的动态下载凭证|O|string| -|userFileId|文件标识|O|integer| +|userFileId|文件标识|O|string| |userFileName|文件名|O|string| -|userFileParentId|文件的父级标识|O|integer| +|userFileParentId|文件的父级标识|O|string| |userId|用户标识|O|integer| **响应参数**: @@ -940,9 +945,9 @@ Cookie: bjg_sid=ab318bdb-4871-4fa8-a736-2e894ee3f507 |    updateTime|更新时间|string|M| |    userDynamicDownloadUrl|文件的动态下载链接|string|C| |    userDynamicPreviewUrl|文件的动态预览链接|string|C| -|    userFileId|文件标识|integer|M| +|    userFileId|文件标识|string|M| |    userFileName|文件名称|string|M| -|    userFileParentId|父级标识(0为根目录)|integer|M| +|    userFileParentId|父级标识(0为根目录)|string|M| |    userId|用户标识|integer|M| |  toTal|总数|integer|M| |message|描述|string|M| @@ -964,9 +969,9 @@ Cookie: bjg_sid=ab318bdb-4871-4fa8-a736-2e894ee3f507 "updateTime": "", "userDynamicDownloadUrl": "", "userDynamicPreviewUrl": "", - "userFileId": 0, + "userFileId": "", "userFileName": "", - "userFileParentId": 0, + "userFileParentId": "", "userId": 0 } ], @@ -996,9 +1001,9 @@ Cookie: bjg_sid=ab318bdb-4871-4fa8-a736-2e894ee3f507 **响应数据类型**:`application/json;charset=UTF-8` **接口描述**: -

    进行文件的批量复制操作,最多支持50个文件的复制

    -

    通过请求参数中shareShort、shareKey可以对其他用户分享的文件进行复制

    -

    注:如果请求中包含文件夹,不会复制文件夹里面的内容

    +

    进行文件、文件夹的批量复制操作,最多支持50个文件、文件夹的复制

    +

    通过请求参数中shareShort、shareKey可以对其他用户分享的文件、文件夹进行复制

    +

    注:批量复制为异步请求,响应参数中的用户缓存信息可能出现与实际信息不同步的问题

    **请求参数**: @@ -1010,7 +1015,7 @@ Cookie: bjg_sid=ab318bdb-4871-4fa8-a736-2e894ee3f507 |targetFileId|目标文件夹标识(必须是文件夹)|M|integer| |copyFileInfo|批量复制的参数|M|array| |  shareKey|文件的key值(短链存在时必填)|C|string| -|  fromFileId|源文件标识|M|integer| +|  fromFileId|源文件标识|M|string| **响应参数**: @@ -1028,9 +1033,9 @@ Cookie: bjg_sid=ab318bdb-4871-4fa8-a736-2e894ee3f507 |    updateTime|更新时间|string|M| |    userDynamicDownloadUrl|文件的动态下载链接|string|C| |    userDynamicPreviewUrl|文件的动态预览链接|string|C| -|    userFileId|文件标识|integer|M| +|    userFileId|文件标识|string|M| |    userFileName|文件名|string|M| -|    userFileParentId|文件的父级标识|integer|M| +|    userFileParentId|文件的父级标识|string|M| |    userId|用户标识|integer|M| |  userInfo|当前用户的缓存信息|object|C| |    available|当前账号是否可用|boolean|M| @@ -1069,9 +1074,9 @@ Cookie: bjg_sid=ab318bdb-4871-4fa8-a736-2e894ee3f507 "updateTime": "", "userDynamicDownloadUrl": "", "userDynamicPreviewUrl": "", - "userFileId": 0, + "userFileId": "", "userFileName": "", - "userFileParentId": 0, + "userFileParentId": "", "userId": 0 } ], @@ -1127,7 +1132,7 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 **响应数据类型**:`application/json;charset=UTF-8` **接口描述**: -

    进行文件、文件夹的批量移动的操作,最多支持50个文件、文件夹的移动

    +

    进行文件、文件夹的批量移动的操作,最多支持120个文件、文件夹的移动

    **请求参数**: @@ -1135,8 +1140,8 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 | 参数名称 | 参数说明 | 约束 | 数据类型 | | -------- | -------- | ----- | ------ | |  moveFileInfo|文件移动参数|M|array| -|    fromFileId|源文件标识|M|integer| -|  targetFileId|目标文件夹标识(只能是文件夹)|M|integer| +|    fromFileId|源文件标识|M|string| +|  targetFileId|目标文件夹标识(只能是文件夹)|M|string| **响应参数**: @@ -1153,9 +1158,9 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 |  updateTime|更新时间|string|M| |  userDynamicDownloadUrl|文件的动态下载链接|string|C| |  userDynamicPreviewUrl|文件的动态预览链接|string|C| -|  userFileId|文件标识|integer|M| +|  userFileId|文件标识|string|M| |  userFileName|文件名称|string|M| -|  userFileParentId|文件的父级标识|integer|M| +|  userFileParentId|文件的父级标识|string|M| |  userId|用户标识|integer|M| |message|描述|string|M| @@ -1175,9 +1180,9 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 "updateTime": "", "userDynamicDownloadUrl": "", "userDynamicPreviewUrl": "", - "userFileId": 0, + "userFileId": "", "userFileName": "", - "userFileParentId": 0, + "userFileParentId": "", "userId": 0 } ], @@ -1215,7 +1220,7 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 **响应数据类型**:`application/json;charset=UTF-8` **接口描述**: -

    进行文件、文件夹的批量删除的操作,最多支持50个文件、文件夹的删除

    +

    进行文件、文件夹的批量删除的操作,最多支持120个文件、文件夹的删除

    **请求参数**: @@ -1324,7 +1329,6 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 |  shareCode|提取码|string|C| |  shareExpirationTime|过期时间(秒)
    最大为604800(一周),最小为-1(永不过期)|integer|M| |  shareExpirationTimeFormat|过期时间内容格式化|string|M| -|  shareFileIds|进行分享的文件标识
    (多个文件标识逗号分割)|string|M| |  shareFileName|进行分享的第一个文件名|string|M| |  shareId|分享主键标识|integer|M| |  shareShort|分享的唯一短链|string|M| @@ -1343,7 +1347,6 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 "shareCode": "", "shareExpirationTime": 0, "shareExpirationTimeFormat": "", - "shareFileIds": "", "shareFileName": "", "shareId": 0, "shareShort": "", @@ -1411,7 +1414,7 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 **请求示例**: ```http request -POST /disk-share/create-share +POST /disk-share/cancel-share HTTP/1.1 Host: cloud.api.novelweb.cn Content-Type: application/json @@ -1455,7 +1458,6 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 |    shareDownloadCount|下载次数|integer|M| |    shareExpirationTime|过期时间(秒)
    最大为604800(一周),最小为-1(永不过期)|integer|M| |    shareExpirationTimeFormat|过期时间内容格式化|string|M| -|    shareFileIds|进行分享的文件标识
    (多个文件标识逗号分割)|string|M| |    shareFileName|进行分享的第一个文件名|string|M| |    shareId|分享主键标识|integer|M| |    shareSaveCount|保存次数|integer|M| @@ -1481,7 +1483,6 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 "shareDownloadCount": 0, "shareExpirationTime": 0, "shareExpirationTimeFormat": "", - "shareFileIds": "", "shareFileName": "", "shareId": 0, "shareSaveCount": 0, @@ -1554,9 +1555,9 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 |    updateTime|更新时间|string|M| |    userDynamicDownloadUrl|文件的动态下载链接|string|C| |    userDynamicPreviewUrl|文件的动态预览链接|string|C| -|    userFileId|文件标识|integer|M| +|    userFileId|文件标识|string|M| |    userFileName|文件名称|string|M| -|    userFileParentId|父级标识(0为根目录)|integer|M| +|    userFileParentId|父级标识(0为根目录)|string|M| |    userId|用户标识|integer|M| |  shareExpirationTime|过期时间(秒)
    最大为604800(一周),最小为-1(永不过期)|integer|M| |  shareExpirationTimeFormat|过期时间内容格式化|string|M| @@ -1586,9 +1587,9 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 "updateTime": "", "userDynamicDownloadUrl": "", "userDynamicPreviewUrl": "", - "userFileId": 0, + "userFileId": "", "userFileName": "", - "userFileParentId": 0, + "userFileParentId": "", "userId": 0 } ], @@ -1638,7 +1639,7 @@ Host: cloud.api.novelweb.cn |code|提取码|C|string| |shareKey|文件的key值|M|string| |shareShort|短链|M|string| -|userFileParentId|父级标识(0为根目录)|M|integer| +|userFileParentId|父级标识(0为根目录)|M|string| **响应参数**: @@ -1657,9 +1658,9 @@ Host: cloud.api.novelweb.cn |    updateTime|更新时间|string|M| |    userDynamicDownloadUrl|文件的动态下载链接|string|C| |    userDynamicPreviewUrl|文件的动态预览链接|string|C| -|    userFileId|文件标识|integer|M| +|    userFileId|文件标识|string|M| |    userFileName|文件名称|string|M| -|    userFileParentId|父级标识(0为根目录)|integer|M| +|    userFileParentId|父级标识(0为根目录)|string|M| |    userId|用户标识|integer|M| |  toTal|总数|integer|M| |message|描述|string|M| @@ -1682,9 +1683,9 @@ Host: cloud.api.novelweb.cn "updateTime": "", "userDynamicDownloadUrl": "", "userDynamicPreviewUrl": "", - "userFileId": 0, + "userFileId": "", "userFileName": "", - "userFileParentId": 0, + "userFileParentId": "", "userId": 0 } ], -- Gitee From d5ef929757193073f86f7220163a48da789e9455 Mon Sep 17 00:00:00 2001 From: Dan <1224073217@qq.com> Date: Sun, 26 Sep 2021 18:57:29 +0800 Subject: [PATCH 11/13] =?UTF-8?q?fix:=20=E6=94=AF=E4=BB=98=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E5=A2=9E=E5=8A=A0=E7=B3=BB=E7=BB=9F=E8=B5=A0=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/setting/setting.vue | 8 +++++--- ...347\275\221\347\233\230API\346\226\207\346\241\243.md" | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/views/setting/setting.vue b/src/views/setting/setting.vue index 9d41fef..ce8eba4 100644 --- a/src/views/setting/setting.vue +++ b/src/views/setting/setting.vue @@ -660,7 +660,7 @@ export default { } res['effectiveDuration'] = effectiveDuration res['orderTotalAmount'] = `¥${res['orderTotalAmount'] / 100}` - // 支付方式: 1:微信 2:支付宝 + // 支付方式: 1:微信 2:支付宝 3:系统赠送 res['orderPaymentType'] = this.formattingOrderPaymentType(res['orderPaymentType']) res['success'] = this.formattingOrderTradeState(res['orderTradeState']) if (res['orderSuccessTime'] === null || res['orderSuccessTime'] === undefined) { @@ -699,16 +699,18 @@ export default { /** * 格式化订单支付类型 * 当前已定义的支付类型为 - * 1:微信 2:支付宝 + * 1:微信 2:支付宝 3:系统赠送 * @param paymentType 支付类型枚举 */ formattingOrderPaymentType: function (paymentType) { - // 支付方式: 1:微信 2:支付宝 + // 支付方式: 1:微信 2:支付宝 3:系统赠送 switch (paymentType) { case '1': return '微信' case '2': return '支付宝' + case '3': + return '赠送' default: return '未定义' } diff --git "a/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" "b/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" index 496e867..ef23dbb 100644 --- "a/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" +++ "b/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" @@ -1308,7 +1308,7 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 **接口描述**:

    用于创建文件分享短链,通过短链可以访问被分享的文件

    -

    最多只能同时分享50个文件、文件夹

    +

    最多只能同时分享120个文件、文件夹

    **请求参数**: -- Gitee From 795ca028dbd0793e9eaa02d79fcf53449cbcb50c Mon Sep 17 00:00:00 2001 From: Dan <1224073217@qq.com> Date: Mon, 27 Sep 2021 22:39:45 +0800 Subject: [PATCH 12/13] =?UTF-8?q?fix(3.5.1):=20=E4=BF=AE=E5=A4=8D=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E8=AE=A2=E5=8D=95=E6=97=B6=E9=97=B4=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E6=97=B6=E5=87=BA=E7=8E=B0=E7=9A=84=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/setting/setting.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/views/setting/setting.vue b/src/views/setting/setting.vue index ce8eba4..e1c9eb1 100644 --- a/src/views/setting/setting.vue +++ b/src/views/setting/setting.vue @@ -603,7 +603,8 @@ export default { userId: this.userInfo.userId } params[key] = value - if (this.paymentOrderSearchForm.time !== '' && + if (this.paymentOrderSearchForm.time !== null && + this.paymentOrderSearchForm.time !== '' && this.paymentOrderSearchForm.time[0] !== undefined && this.paymentOrderSearchForm.time[1] !== undefined) { params.startTime = this.paymentOrderSearchForm.time[0] -- Gitee From 0d854d79689f97651f9c771aedfc06290f23b1da Mon Sep 17 00:00:00 2001 From: Dan <1224073217@qq.com> Date: Mon, 27 Sep 2021 22:45:28 +0800 Subject: [PATCH 13/13] =?UTF-8?q?fix(3.5.1):=20=E4=BF=AE=E6=94=B9api?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=96=87=E6=A1=A3=E9=BB=98=E8=AE=A4=E5=93=8D?= =?UTF-8?q?=E5=BA=94code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...347\233\230API\346\226\207\346\241\243.md" | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git "a/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" "b/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" index ef23dbb..d13ffdf 100644 --- "a/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" +++ "b/\345\205\234\345\205\234\347\275\221\347\233\230API\346\226\207\346\241\243.md" @@ -302,9 +302,9 @@ Content-Type: application/json ```json { - "code": "", + "code": "200", "data": "", - "message": "" + "message": "请求成功" } ``` @@ -583,9 +583,9 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 ```json { - "code": "", + "code": "200", "data": "", - "message": "" + "message": "请求成功" } ``` @@ -660,7 +660,7 @@ Content-Type: image/jpeg ```json { - "code": "", + "code": "200", "data": { "diskUserFile": { "createTime": "", @@ -680,7 +680,7 @@ Content-Type: image/jpeg "key": "", "token": "" }, - "message": "" + "message": "请求成功" } ``` @@ -746,7 +746,7 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 ```json { - "code": "", + "code": "200", "data": { "createTime": "", "fileFolder": true, @@ -762,7 +762,7 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 "userFileParentId": "", "userId": 0 }, - "message": "" + "message": "请求成功" } ``` @@ -826,7 +826,7 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 ```json { - "code": "", + "code": "200", "data": { "createTime": "", "fileFolder": true, @@ -842,7 +842,7 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 "userFileParentId": "", "userId": 0 }, - "message": "" + "message": "请求成功" } ``` @@ -1168,7 +1168,7 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 ```json { - "code": "", + "code": "200", "data": [ { "createTime": "", @@ -1186,7 +1186,7 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 "userId": 0 } ], - "message": "" + "message": "请求成功" } ``` @@ -1258,7 +1258,7 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 ```json { - "code": "", + "code": "200", "data": { "available": true, "createTime": "", @@ -1278,7 +1278,7 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 "userRemainingTraffic": 0, "userUnlockTime": "" }, - "message": "" + "message": "请求成功" } ``` @@ -1340,7 +1340,7 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 ```json { - "code": "", + "code": "200", "data": { "expiration": false, "includeFolder": false, @@ -1353,7 +1353,7 @@ Cookie: bjg_sid=2d814ef-6d81-4560-ad07-6701c12c73 "shareShortUrl": "", "shareUserId": 0 }, - "message": "" + "message": "请求成功" } ``` -- Gitee