🐛 Fix: add local path picbed into delete api of http server

This commit is contained in:
萌萌哒赫萝
2023-08-10 05:30:46 -07:00
parent 517348886c
commit f585bb4d7d
19 changed files with 228 additions and 262 deletions

View File

@@ -1,35 +1,32 @@
import AliyunApi from './aliyun'
import AwsS3Api from './awss3'
import GithubApi from './github'
import ImgurApi from './imgur'
import LocalApi from './local'
import QiniuApi from './qiniu'
import SftpPlistApi from './sftpplist'
import SmmsApi from './smms'
import TcyunApi from './tcyun'
import AliyunApi from './aliyun'
import QiniuApi from './qiniu'
import ImgurApi from './imgur'
import GithubApi from './github'
import UpyunApi from './upyun'
import AwsS3Api from './awss3'
import WebdavApi from './webdav'
import LocalApi from './local'
import SftpPlistApi from './sftpplist'
const apiMap: IStringKeyMap = {
aliyun: AliyunApi,
'aws-s3': AwsS3Api,
github: GithubApi,
imgur: ImgurApi,
local: LocalApi,
qiniu: QiniuApi,
sftpplist: SftpPlistApi,
smms: SmmsApi,
tcyun: TcyunApi,
aliyun: AliyunApi,
qiniu: QiniuApi,
imgur: ImgurApi,
github: GithubApi,
upyun: UpyunApi,
'aws-s3': AwsS3Api,
webdavplist: WebdavApi,
local: LocalApi,
sftpplist: SftpPlistApi
webdavplist: WebdavApi
}
export default class ALLApi {
static async delete (configMap: IStringKeyMap): Promise<boolean> {
const api = apiMap[configMap.type]
if (api) {
return await api.delete(configMap)
}
return false
return api ? await api.delete(configMap) : false
}
}

View File

@@ -1,13 +1,15 @@
import { ipcRenderer } from 'electron'
import { getRawData } from '~/renderer/utils/common'
import { removeFileFromS3InMain } from '~/main/utils/deleteFunc'
export default class AwsS3Api {
static async delete (configMap: IStringKeyMap): Promise<boolean> {
try {
const deleteResult = await ipcRenderer.invoke('delete-aws-s3-file',
getRawData(configMap)
)
return deleteResult
return ipcRenderer
? await ipcRenderer.invoke('delete-aws-s3-file',
getRawData(configMap)
)
: await removeFileFromS3InMain(getRawData(configMap))
} catch (error) {
console.log(error)
return false

View File

@@ -17,6 +17,8 @@ interface IConfig {
}
export default class ImgurApi {
static baseUrl: 'https://api.imgur.com/3'
private static async makeRequest (
method: 'delete',
url: string,
@@ -35,25 +37,23 @@ export default class ImgurApi {
}
static async delete (configMap: IConfigMap): Promise<boolean> {
const { config = {}, hash = '' } = configMap || {}
const { clientId = '', username = '', accessToken = '' } = config
const baseUrl = 'https://api.imgur.com/3'
let Authorization: string
let apiUrl: string
const {
config: { clientId = '', username = '', accessToken = '' } = {},
hash = ''
} = configMap
let Authorization: string, apiUrl: string
if (username && accessToken) {
Authorization = `Bearer ${accessToken}`
apiUrl = `${baseUrl}/account/${username}/image/${hash}`
apiUrl = `${ImgurApi.baseUrl}/account/${username}/image/${hash}`
} else if (clientId) {
Authorization = `Client-ID ${clientId}`
apiUrl = `${baseUrl}/image/${hash}`
apiUrl = `${ImgurApi.baseUrl}/image/${hash}`
} else {
return false
}
const headers = {
Authorization
}
const requestConfig: IConfig = {
headers,
headers: { Authorization },
timeout: 30000
}
return ImgurApi.makeRequest('delete', apiUrl, requestConfig)

View File

@@ -8,7 +8,7 @@ export default class LocalApi {
static async delete (configMap: IConfigMap): Promise<boolean> {
const { hash } = configMap
if (!hash) {
console.error('SmmsApi.delete: invalid params')
console.error('Local.delete: invalid params')
return false
}

View File

@@ -31,7 +31,7 @@ export default class QiniuApi {
}
})
}) as any
return res && res.respInfo.statusCode === 200
return res?.respInfo?.statusCode === 200
} catch (error) {
console.error(error)
return false

View File

@@ -322,7 +322,7 @@ const choosedPicBedForQRCode: Ref<string[]> = ref([])
const isAlwaysOnTop = ref(false)
const keepAlivePages = $router.getRoutes().filter(item => item.meta.keepAlive).map(item => item.name as string)
const progressShow = ref(true)
const progressShow = ref(false)
const progressPercentage = ref(0)
onBeforeMount(() => {

View File

@@ -461,6 +461,7 @@ import ALLApi from '@/apis/allApi'
// 工具函数
import { customRenameFormatTable, customStrMatch, customStrReplace } from '../manage/utils/common'
import { picBedsCanbeDeleted } from '#/utils/static'
const images = ref<ImgInfo[]>([])
const dialogVisible = ref(false)
@@ -688,7 +689,6 @@ function remove (item: ImgInfo) {
type: 'warning'
}).then(async () => {
const file = await $$db.getById(item.id!)
const picBedsCanbeDeleted = ['smms', 'github', 'imgur', 'tcyun', 'aliyun', 'qiniu', 'upyun', 'aws-s3', 'webdavplist', 'local', 'sftpplist']
if (await getConfig('settings.deleteCloudFile')) {
if (item.type !== undefined && picBedsCanbeDeleted.includes(item.type)) {
const result = await ALLApi.delete(item)
@@ -798,7 +798,6 @@ function multiRemove () {
const files: IResult<ImgInfo>[] = []
const imageIDList = Object.keys(choosedList)
const isDeleteCloudFile = await getConfig('settings.deleteCloudFile')
const picBedsCanbeDeleted = ['smms', 'github', 'imgur', 'tcyun', 'aliyun', 'qiniu', 'upyun', 'aws-s3', 'webdavplist', 'local', 'sftpplist']
if (isDeleteCloudFile) {
for (let i = 0; i < imageIDList.length; i++) {
const key = imageIDList[i]
@@ -1161,3 +1160,4 @@ export default {
color #ddd
margin-bottom 10px
</style>
@/apis