Skip to content

Commit d95c2fe

Browse files
authored
fix: multipart with remote storage (#318)
1 parent 62b9a46 commit d95c2fe

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

src/runtime/blob/server/api/_hub/blob/multipart/[action]/[...pathname].ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,15 @@ export default eventHandler(async (event) => {
77
await requireNuxtHubAuthorization(event)
88
requireNuxtHubFeature('blob')
99

10-
const query = getQuery(event)
10+
const options = { ...getQuery(event) }
11+
if (typeof options.customMetadata === 'string') {
12+
try {
13+
options.customMetadata = JSON.parse(options.customMetadata)
14+
} catch (e) {
15+
options.customMetadata = {}
16+
}
17+
}
1118
return await hubBlob().handleMultipartUpload(event, {
12-
...query
19+
...options
1320
})
1421
})

src/runtime/blob/server/utils/blob.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -396,17 +396,17 @@ export function proxyHubBlob(projectUrl: string, secretKey?: string): HubBlob {
396396
return
397397
},
398398
async createMultipartUpload(pathname: string, options: BlobMultipartOptions = {}) {
399-
return await blobAPI<BlobMultipartUpload>(`/multipart/${decodeURI(pathname)}`, {
399+
return await blobAPI<BlobMultipartUpload>(`/multipart/create/${decodeURI(pathname)}`, {
400400
method: 'POST',
401-
body: options
401+
query: options
402402
})
403403
},
404404
resumeMultipartUpload(pathname: string, uploadId: string): BlobMultipartUpload {
405405
return {
406406
pathname,
407407
uploadId,
408408
async uploadPart(partNumber: number, body: string | ReadableStream<any> | ArrayBuffer | ArrayBufferView | Blob): Promise<BlobUploadedPart> {
409-
return await blobAPI<BlobUploadedPart>(`/multipart/${decodeURI(pathname)}`, {
409+
return await blobAPI<BlobUploadedPart>(`/multipart/upload/${decodeURI(pathname)}`, {
410410
method: 'PUT',
411411
query: {
412412
uploadId,
@@ -416,18 +416,17 @@ export function proxyHubBlob(projectUrl: string, secretKey?: string): HubBlob {
416416
})
417417
},
418418
async abort(): Promise<void> {
419-
await blobAPI(`/multipart/${decodeURI(pathname)}`, {
419+
await blobAPI(`/multipart/abort/${decodeURI(pathname)}`, {
420420
method: 'DELETE',
421421
query: {
422422
uploadId
423423
}
424424
})
425425
},
426426
async complete(parts: BlobUploadedPart[]): Promise<BlobObject> {
427-
return await blobAPI<BlobObject>('/multipart/complete', {
427+
return await blobAPI<BlobObject>(`/multipart/complete/${decodeURI(pathname)}`, {
428428
method: 'POST',
429429
query: {
430-
pathname,
431430
uploadId
432431
},
433432
body: {

0 commit comments

Comments
 (0)