fix: honor presign proxy upload URLs
This commit is contained in:
@@ -213,10 +213,13 @@ export function usePresignedUpload(options: UsePresignedUploadOptions = {}) {
|
|||||||
presignStatus.value = PRESIGN_UPLOAD_STATUS.UPLOADING
|
presignStatus.value = PRESIGN_UPLOAD_STATUS.UPLOADING
|
||||||
|
|
||||||
const progressHandler = createProgressHandler(options?.onProgress)
|
const progressHandler = createProgressHandler(options?.onProgress)
|
||||||
|
const uploadUrl =
|
||||||
|
session.proxy_upload_url || session.upload_url || session.legacy_proxy_upload_url
|
||||||
const response = await PresignUploadService.proxyUpload(
|
const response = await PresignUploadService.proxyUpload(
|
||||||
session.upload_id,
|
session.upload_id,
|
||||||
file,
|
file,
|
||||||
progressHandler
|
progressHandler,
|
||||||
|
uploadUrl
|
||||||
)
|
)
|
||||||
|
|
||||||
if (response.code === 200 && response.detail?.code) {
|
if (response.code === 200 && response.detail?.code) {
|
||||||
|
|||||||
@@ -19,12 +19,17 @@ export class PresignUploadService {
|
|||||||
static async proxyUpload(
|
static async proxyUpload(
|
||||||
uploadId: string,
|
uploadId: string,
|
||||||
file: File,
|
file: File,
|
||||||
onProgress?: (progress: UploadProgress) => void
|
onProgress?: (progress: UploadProgress) => void,
|
||||||
|
uploadUrl?: string
|
||||||
): Promise<ApiResponse<PresignUploadResult>> {
|
): Promise<ApiResponse<PresignUploadResult>> {
|
||||||
const formData = new FormData()
|
const formData = new FormData()
|
||||||
formData.append('file', file)
|
formData.append('file', file)
|
||||||
|
|
||||||
return api.put(`/presign/upload/proxy/${uploadId}`, formData, multipartUploadConfig(onProgress))
|
return api.put(
|
||||||
|
uploadUrl || `/presign/upload/proxy/${uploadId}`,
|
||||||
|
formData,
|
||||||
|
multipartUploadConfig(onProgress)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
static async confirmUpload(
|
static async confirmUpload(
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ export interface PresignInitRequest {
|
|||||||
export interface PresignInitResponse {
|
export interface PresignInitResponse {
|
||||||
upload_id: string
|
upload_id: string
|
||||||
upload_url: string
|
upload_url: string
|
||||||
|
proxy_upload_url?: string
|
||||||
|
legacy_proxy_upload_url?: string
|
||||||
mode: PresignUploadMode
|
mode: PresignUploadMode
|
||||||
expires_in: number
|
expires_in: number
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user