MCPcopy Index your code
hub / github.com/fontsource/fontsource / uploadPart

Function uploadPart

api/download/src/bucket.ts:133–178  ·  view source on GitHub ↗
(
	bucketPath: string,
	uploadId: string,
	partNumber: number,
	partData: Uint8Array | ArrayBuffer,
)

Source from the content-addressed store, hash-verified

131};
132
133const uploadPart = async (
134 bucketPath: string,
135 uploadId: string,
136 partNumber: number,
137 partData: Uint8Array | ArrayBuffer,
138) => {
139 keepAwake(SLEEP_MINUTES);
140 const formData = new FormData();
141 formData.append('partNumber', String(partNumber));
142 formData.append('uploadId', uploadId);
143
144 const blob = new Blob([partData]);
145 const filename = `${bucketPath}-${partNumber}`;
146 formData.append('file', blob, filename);
147
148 const resp = await fetch(
149 `https://upload.fontsource.org/multipart/${bucketPath}?action=mpu-uploadpart`,
150 {
151 method: 'PUT',
152 headers: {
153 Authorization: `Bearer ${
154 // biome-ignore lint/style/noNonNullAssertion: <explanation>
155 process.env.UPLOAD_KEY!
156 }`,
157 },
158 body: formData,
159 },
160 );
161
162 if (!resp.ok) {
163 const error = await resp.text();
164 const msg = `Unable to upload part. ${error}`;
165
166 await abortMultiPartUpload(bucketPath, uploadId, msg);
167 handleBucketError(resp, msg);
168 }
169
170 const data = await resp.json();
171 if (!data.etag) {
172 throw new StatusError(
173 500,
174 `Internal Server Error. ETag is missing. ${JSON.stringify(data)}`,
175 );
176 }
177 return data.etag;
178};
179
180const completeMultipartUpload = async (
181 bucketPath: string,

Callers 1

putBucketFunction · 0.85

Calls 7

keepAwakeFunction · 0.90
abortMultiPartUploadFunction · 0.85
handleBucketErrorFunction · 0.85
jsonMethod · 0.80
appendMethod · 0.65
textMethod · 0.65
fetchFunction · 0.50

Tested by

no test coverage detected