diff --git a/pages.json b/pages.json index b9ff26dcf2b625e3d30f06c8538394212a368219..0309f086350015e1a42faab38864f12413e4a242 100644 --- a/pages.json +++ b/pages.json @@ -49,90 +49,104 @@ "enablePullDownRefresh": false } - }, - { - "path": "pages/clientDB/clientDB", - "style": { - "navigationBarTitleText": "前端操作数据库", - "enablePullDownRefresh": false - } - }, - { - "path": "pages/user-info/add", - "style": { - "navigationBarTitleText": "新增" - } - }, { - "path": "pages/user-info/edit", - "style": { - "navigationBarTitleText": "修改" - } - }, { - "path": "pages/user-info/list", - "style": { - "navigationBarTitleText": "列表" - } - }, { - "path": "pages/user-info/detail", - "style": { - "navigationBarTitleText": "详情" - } - }, - { - "path": "pages/storage/storage", - "style": { - "navigationBarTitleText": "云存储", - "enablePullDownRefresh": false - } - }, - { - "path": "pages/schema2code/schema2code", - "style": { - "navigationBarTitleText": "schema2code", - "enablePullDownRefresh": false - } - }, - { - "path": "pages/clientDB/permission/permission", - "style": { - "navigationBarTitleText": "角色权限", - "enablePullDownRefresh": false - } - }, - { - "path": "pages/clientDB/permission-demo/permission-demo", - "style": { - "navigationBarTitleText": "角色权限", - "enablePullDownRefresh": false - } - }, - { - "path": "pages/clientDB/permission-demo/readme", - "style": { - "navigationBarTitleText": "角色权限", - "enablePullDownRefresh": false - } - }, - { - "path": "pages/clientDB/permission-field-simple/permission-field-simple", - "style": { - "navigationBarTitleText": "简单-字段级权限控制", - "enablePullDownRefresh": false - } - }, - { - "path": "pages/clientDB/clientDB-api/clientDB-api", - "style": { - "navigationBarTitleText": "前端操作数据库的API", - "enablePullDownRefresh": false - } - }, - { - "path": "pages/clientDB/validate/validate", - "style": { - "navigationBarTitleText": "字段值域验证", - "enablePullDownRefresh": false - } + }, + { + "path": "pages/clientDB/clientDB", + "style": { + "navigationBarTitleText": "前端操作数据库", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/user-info/add", + "style": { + "navigationBarTitleText": "新增" + } + }, { + "path": "pages/user-info/edit", + "style": { + "navigationBarTitleText": "修改" + } + }, { + "path": "pages/user-info/list", + "style": { + "navigationBarTitleText": "列表" + } + }, { + "path": "pages/user-info/detail", + "style": { + "navigationBarTitleText": "详情" + } + }, + { + "path": "pages/storage/storage", + "style": { + "navigationBarTitleText": "云存储", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/storage/space-storage", + "style": { + "navigationBarTitleText": "空间内置云存储", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/storage/ext-storage-qiniu", + "style": { + "navigationBarTitleText": "扩展存储-七牛云", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/schema2code/schema2code", + "style": { + "navigationBarTitleText": "schema2code", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/clientDB/permission/permission", + "style": { + "navigationBarTitleText": "角色权限", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/clientDB/permission-demo/permission-demo", + "style": { + "navigationBarTitleText": "角色权限", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/clientDB/permission-demo/readme", + "style": { + "navigationBarTitleText": "角色权限", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/clientDB/permission-field-simple/permission-field-simple", + "style": { + "navigationBarTitleText": "简单-字段级权限控制", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/clientDB/clientDB-api/clientDB-api", + "style": { + "navigationBarTitleText": "前端操作数据库的API", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/clientDB/validate/validate", + "style": { + "navigationBarTitleText": "字段值域验证", + "enablePullDownRefresh": false + } }, { "path": "pages/validate-demo/add", diff --git a/pages/storage/ext-storage-qiniu.vue b/pages/storage/ext-storage-qiniu.vue new file mode 100644 index 0000000000000000000000000000000000000000..4b280d8632d805758046fe0a8c0c6f36490c0f76 --- /dev/null +++ b/pages/storage/ext-storage-qiniu.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/pages/storage/space-storage.vue b/pages/storage/space-storage.vue new file mode 100644 index 0000000000000000000000000000000000000000..e8cdeb79935cb903182bc7f1d05296f2babfeb24 --- /dev/null +++ b/pages/storage/space-storage.vue @@ -0,0 +1,195 @@ + + + + + diff --git a/pages/storage/storage.vue b/pages/storage/storage.vue index 40416f0ac247548ff22d683b4da31d2b1c754f17..33014b02c662cc4fce3345caccb3212a93c24465 100644 --- a/pages/storage/storage.vue +++ b/pages/storage/storage.vue @@ -1,17 +1,10 @@ @@ -23,143 +16,10 @@ }, mounted() {}, methods: { - chooseAndUploadFile(file) { - uni.showLoading({ - title: '文件上传中...' - }) - uniCloud.chooseAndUploadFile({ - type: 'image', - onChooseFile:(res)=> { - console.log(res); - const processAll = [] - for (let i = 0; i < res.tempFiles.length; i++) { - processAll.push(this.cropImg(res.tempFiles[i])) - } - return Promise.all(processAll).then((fileList) => { - let result = { - tempFilePaths: [] - } - result.tempFiles = fileList.map((fileItem, index) => { - result.tempFilePaths.push(fileItem.path) - return { - path: fileItem.path, - cloudPath: '' + Date.now() + index + '.' + fileItem.ext, // 云端路径,这里随便生成了一个 - fileType: fileItem.fileType - } - }) - return result - }) - } - }).then(res => { - console.log(res) - uni.showModal({ - content: JSON.stringify(res), - showCancel: false - }); - return res - }).catch((err) => { - console.log(err); - uni.showModal({ - content: JSON.stringify(err), - showCancel: false - }); - return err - }).finally(() => { - uni.hideLoading() - }) - }, - cropImg(file) { - return new Promise((resolve, reject) => { - let ext - let filePathProcessed = file.path // 处理结果 - // #ifdef H5 - ext = file.name.split('.').pop() - resolve({ - path: filePathProcessed, - ext, - fileType: file.fileType - }) - // #endif - // #ifndef H5 - uni.getImageInfo({ - src: file.path, - success(info) { - ext = info.type.toLowerCase() - resolve({ - path: filePathProcessed, - ext, - fileType: file.fileType - }) - }, - fail(err) { - reject(new Error(err.errMsg || '未能获取图片类型')) - } - }) - // #endif - }) - }, - upload() { - new Promise((resolve, reject) => { - uni.chooseImage({ - count: 1, - success: res => { - const path = res.tempFilePaths[0] - let ext - // #ifdef H5 - ext = res.tempFiles[0].name.split('.').pop() - const options = { - filePath: path, - cloudPath: Date.now() + '.' + ext - } - resolve(options) - // #endif - // #ifndef H5 - uni.getImageInfo({ - src: path, - success(info) { - const options = { - filePath: path, - cloudPath: Date.now() + '.' + info.type.toLowerCase() - } - resolve(options) - }, - fail(err) { - reject(new Error(err.errMsg || '未能获取图片类型')) - } - }) - // #endif - }, - fail: () => { - reject(new Error('Fail_Cancel')) - } - }) - }).then((options) => { - uni.showLoading({ - title: '文件上传中...' - }) - return uniCloud.uploadFile({ - ...options, - onUploadProgress(e) { - console.log(e) - } - }) - }).then(res => { - uni.hideLoading() - console.log(res); - uni.showModal({ - content: '图片上传成功,fileId为:' + res.fileID, - showCancel: false - }) - }).catch((err) => { - uni.hideLoading() - console.log(err); - if (err.message !== 'Fail_Cancel') { - uni.showModal({ - content: `图片上传失败,错误信息为:${err.message}`, - showCancel: false - }) - } - }) + pageTo(url){ + uni.navigateTo({ + url + }); } } } @@ -170,13 +30,6 @@ padding-bottom: 30px; } - .title { - font-weight: bold; - text-align: center; - padding: 20px 0px; - font-size: 20px; - } - .tips { color: #999999; font-size: 14px; @@ -191,7 +44,4 @@ margin-top: 20px; } - .upload-preview { - width: 100%; - } diff --git a/uniCloud-aliyun/cloudfunctions/ext-storage-co/index.obj.js b/uniCloud-aliyun/cloudfunctions/ext-storage-co/index.obj.js new file mode 100644 index 0000000000000000000000000000000000000000..bb817d7f8b46a0c4cc0f905944472d954f429ab2 --- /dev/null +++ b/uniCloud-aliyun/cloudfunctions/ext-storage-co/index.obj.js @@ -0,0 +1,64 @@ +// 扩展存储自定义域名 +const domain = "qiniu01.dcloud.net.cn"; +module.exports = { + _before() {}, + getUploadFileOptions(data = {}) { + let { + cloudPath, // 前端传过来的文件路径 + } = data; + // 可以在此先判断下此路径是否允许上传等逻辑 + // ... + + // 然后获取 extStorageManager 对象实例 + const extStorageManager = uniCloud.getExtStorageManager({ + provider: "qiniu", // 扩展存储供应商 + domain: domain, // 带http协议头的域名地址 + }); + // 最后调用 extStorageManager.getUploadFileOptions + let uploadFileOptionsRes = extStorageManager.getUploadFileOptions({ + cloudPath: cloudPath, + allowUpdate: false, // 是否允许覆盖更新,如果返回前端,建议设置false,代表仅新增,不可覆盖 + }); + return uploadFileOptionsRes; + }, + // 设置文件为私有权限 + async setFilePrivate(data = {}) { + let { + fileID + } = data; + // 可以在此先判断下此路径是否允许设置为私有权限 + // ... + + // 然后获取 extStorageManager 对象实例 + const extStorageManager = uniCloud.getExtStorageManager({ + provider: "qiniu", // 扩展存储供应商 + domain: domain, // 带http协议头的域名地址 + }); + let res = await extStorageManager.updateFileStatus({ + fileID, // 私有文件id + isPrivate: true, // true 私有 false 公共 + }); + console.log('updateFileStatus: ', res); + return res; + }, + // 获取临时下载链接 + async getTempFileURL(data = {}) { + let { + fileList + } = data; + // 可以在此先判断下是否有权限访问这些私有文件 + // ... + + // 然后获取 extStorageManager 对象实例 + const extStorageManager = uniCloud.getExtStorageManager({ + provider: "qiniu", // 扩展存储供应商 + domain: domain, // 带http协议头的域名地址 + }); + let res = extStorageManager.getTempFileURL({ + fileList + }); + console.log('getTempFileURL: ', res); + return res; + }, + +} \ No newline at end of file diff --git a/uniCloud-aliyun/cloudfunctions/ext-storage-co/package.json b/uniCloud-aliyun/cloudfunctions/ext-storage-co/package.json new file mode 100644 index 0000000000000000000000000000000000000000..73cb5b1b54e8a4f16afeca0b3312b8bedb61c33b --- /dev/null +++ b/uniCloud-aliyun/cloudfunctions/ext-storage-co/package.json @@ -0,0 +1,7 @@ +{ + "name": "ext-storage-co", + "dependencies": {}, + "extensions": { + "uni-cloud-ext-storage": {} + } +} \ No newline at end of file