Skip to content

Commit a0d2d3c

Browse files
committed
Add multipart upload interface for handlers
Change-type: minor
1 parent 58614fe commit a0d2d3c

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

src/webresource-handler/index.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,51 @@ export interface UploadResponse {
3131
filename: string;
3232
}
3333

34+
export interface BeginMultipartUploadPayload {
35+
filename: string;
36+
content_type: string;
37+
size: number;
38+
chunk_size: number;
39+
}
40+
41+
export interface UploadPart {
42+
url: string;
43+
chunkSize: number;
44+
partNumber: number;
45+
}
46+
47+
export interface BeginMultipartUploadHandlerResponse {
48+
uploadParts: UploadPart[];
49+
fileKey: string;
50+
uploadId: string;
51+
}
52+
53+
export interface CommitMultipartUploadPayload {
54+
fileKey: string;
55+
uploadId: string;
56+
filename: string;
57+
providerCommitData?: Record<string, any>;
58+
}
59+
60+
export interface CancelMultipartUploadPayload {
61+
fileKey: string;
62+
uploadId: string;
63+
}
64+
3465
export interface WebResourceHandler {
3566
handleFile: (resource: IncomingFile) => Promise<UploadResponse>;
3667
removeFile: (fileReference: string) => Promise<void>;
3768
onPreRespond: (webResource: WebResource) => Promise<WebResource>;
69+
multipartUpload?: {
70+
begin: (
71+
fieldName: string,
72+
payload: BeginMultipartUploadPayload,
73+
) => Promise<BeginMultipartUploadHandlerResponse>;
74+
commit: (commitInfo: CommitMultipartUploadPayload) => Promise<WebResource>;
75+
cancel: (cancelInfo: CancelMultipartUploadPayload) => Promise<void>;
76+
getMinimumPartSize: () => number;
77+
getDefaultPartSize: () => number;
78+
};
3879
}
3980

4081
export class WebResourceError extends TypedError {}

0 commit comments

Comments
 (0)