diff --git a/sheep/api/infra/file.js b/sheep/api/infra/file.js index 05e03dcf..88355951 100644 --- a/sheep/api/infra/file.js +++ b/sheep/api/infra/file.js @@ -1,11 +1,9 @@ import { baseUrl, apiPath, tenantId } from '@/sheep/config'; -import request from '@/sheep/request'; +import request, { getAccessToken } from '@/sheep/request'; const FileApi = { // 上传文件 - uploadFile: (file) => { - // TODO 芋艿:访问令牌的接入; - const token = uni.getStorageSync('token'); + uploadFile: (file, directory) => { uni.showLoading({ title: '上传中', }); @@ -17,7 +15,10 @@ const FileApi = { header: { Accept: '*/*', 'tenant-id': tenantId, - // Authorization: 'Bearer test247', + Authorization: 'Bearer ' + getAccessToken(), + }, + formData: { + directory, }, success: (uploadFileRes) => { let result = JSON.parse(uploadFileRes.data); @@ -42,12 +43,13 @@ const FileApi = { }, // 获取文件预签名地址 - getFilePresignedUrl: (path) => { + getFilePresignedUrl: (name, directory) => { return request({ url: '/infra/file/presigned-url', method: 'GET', params: { - path, + name, + directory, }, }); }, diff --git a/sheep/components/s-uploader/choose-and-upload-file.js b/sheep/components/s-uploader/choose-and-upload-file.js index a7a64080..cea26266 100644 --- a/sheep/components/s-uploader/choose-and-upload-file.js +++ b/sheep/components/s-uploader/choose-and-upload-file.js @@ -175,7 +175,7 @@ function uploadCloudFiles(files, max = 5, onUploadProgress) { }); } -function uploadFilesFromPath(path) { +function uploadFilesFromPath(path, directory) { // 目的:用于微信小程序,选择图片时,只有 path return uploadFiles( Promise.resolve({ @@ -187,11 +187,13 @@ function uploadFilesFromPath(path) { }, ], }), - {}, + { + directory, + }, ); } -async function uploadFiles(choosePromise, { onChooseFile, onUploadProgress }) { +async function uploadFiles(choosePromise, { onChooseFile, onUploadProgress, directory }) { // 获取选择的文件 const res = await choosePromise; // 处理文件选择回调 @@ -212,7 +214,7 @@ async function uploadFiles(choosePromise, { onChooseFile, onUploadProgress }) { const uploadPromises = files.map(async (file) => { try { // 1.1 获取文件预签名地址 - const { data: presignedInfo } = await FileApi.getFilePresignedUrl(file.name); + const { data: presignedInfo } = await FileApi.getFilePresignedUrl(file.name, directory); // 1.2 获取二进制文件对象 const fileBuffer = await readFile(file); @@ -260,6 +262,7 @@ async function uploadFiles(choosePromise, { onChooseFile, onUploadProgress }) { function chooseAndUploadFile( opts = { type: 'all', + directory: undefined, }, ) { if (opts.type === 'image') { @@ -279,7 +282,7 @@ function createFile(vo, file) { const fileVo = { configId: vo.configId, url: vo.url, - path: file.name, + path: vo.path, name: file.name, type: file.fileType, size: file.size,