better names
This commit is contained in:
parent
befcdedd08
commit
8bd10f4cf2
|
@ -7,21 +7,20 @@ interface PartEtag{
|
||||||
PartNumber:number;
|
PartNumber:number;
|
||||||
Etag:string;
|
Etag:string;
|
||||||
}
|
}
|
||||||
export function calculatePartCount(encryptedChunkCount: number) {
|
export function calculatePartCount(chunkCount: number) {
|
||||||
const partCount = Math.ceil(
|
const partCount = Math.ceil(
|
||||||
encryptedChunkCount / CHUNKS_COMBINED_FOR_A_UPLOAD_PART,
|
chunkCount / CHUNKS_COMBINED_FOR_A_UPLOAD_PART,
|
||||||
);
|
);
|
||||||
return partCount;
|
return partCount;
|
||||||
}
|
}
|
||||||
export async function uploadStreamUsingMultipart(filename:string, encryptedData:DataStream, progressTracker) {
|
export async function uploadStreamUsingMultipart(filename:string, dataStream:DataStream, progressTracker) {
|
||||||
const { chunkCount, stream } = encryptedData;
|
const uploadPartCount = calculatePartCount(dataStream.chunkCount);
|
||||||
const uploadPartCount = calculatePartCount(chunkCount);
|
const multipartUploadURLs = await NetworkClient.fetchMultipartUploadURLs(
|
||||||
const filePartUploadURLs = await NetworkClient.fetchMultipartUploadURLs(
|
|
||||||
uploadPartCount,
|
uploadPartCount,
|
||||||
);
|
);
|
||||||
const fileObjectKey = await uploadStreamInParts(
|
const fileObjectKey = await uploadStreamInParts(
|
||||||
filePartUploadURLs,
|
multipartUploadURLs,
|
||||||
stream,
|
dataStream.stream,
|
||||||
filename,
|
filename,
|
||||||
uploadPartCount,
|
uploadPartCount,
|
||||||
progressTracker,
|
progressTracker,
|
||||||
|
@ -31,12 +30,12 @@ export async function uploadStreamUsingMultipart(filename:string, encryptedData:
|
||||||
|
|
||||||
export async function uploadStreamInParts(
|
export async function uploadStreamInParts(
|
||||||
multipartUploadURLs: MultipartUploadURLs,
|
multipartUploadURLs: MultipartUploadURLs,
|
||||||
file: ReadableStream<Uint8Array>,
|
dataStream: ReadableStream<Uint8Array>,
|
||||||
filename: string,
|
filename: string,
|
||||||
uploadPartCount: number,
|
uploadPartCount: number,
|
||||||
progressTracker,
|
progressTracker,
|
||||||
) {
|
) {
|
||||||
const encryptedFileStreamReader = file.getReader();
|
const streamReader = dataStream.getReader();
|
||||||
const percentPerPart = getRandomProgressPerPartUpload(uploadPartCount);
|
const percentPerPart = getRandomProgressPerPartUpload(uploadPartCount);
|
||||||
|
|
||||||
const partEtags:PartEtag[] = [];
|
const partEtags:PartEtag[] = [];
|
||||||
|
@ -44,7 +43,7 @@ export async function uploadStreamInParts(
|
||||||
index,
|
index,
|
||||||
fileUploadURL,
|
fileUploadURL,
|
||||||
] of multipartUploadURLs.partURLs.entries()) {
|
] of multipartUploadURLs.partURLs.entries()) {
|
||||||
const uploadChunk = await combineChunksToFormUploadPart(encryptedFileStreamReader);
|
const uploadChunk = await combineChunksToFormUploadPart(streamReader);
|
||||||
const eTag= await NetworkClient.putFilePart(fileUploadURL, uploadChunk, progressTracker.bind(null, filename, percentPerPart, index));
|
const eTag= await NetworkClient.putFilePart(fileUploadURL, uploadChunk, progressTracker.bind(null, filename, percentPerPart, index));
|
||||||
partEtags.push({ PartNumber: index+1, Etag: eTag });
|
partEtags.push({ PartNumber: index+1, Etag: eTag });
|
||||||
}
|
}
|
||||||
|
@ -61,11 +60,11 @@ export function getRandomProgressPerPartUpload(uploadPartCount:number) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export async function combineChunksToFormUploadPart(dataStreamReader:ReadableStreamDefaultReader<Uint8Array>) {
|
export async function combineChunksToFormUploadPart(streamReader:ReadableStreamDefaultReader<Uint8Array>) {
|
||||||
const combinedChunks = [];
|
const combinedChunks = [];
|
||||||
for (let i = 0; i < CHUNKS_COMBINED_FOR_A_UPLOAD_PART; i++) {
|
for (let i = 0; i < CHUNKS_COMBINED_FOR_A_UPLOAD_PART; i++) {
|
||||||
const { done, value: chunk } =
|
const { done, value: chunk } =
|
||||||
await dataStreamReader.read();
|
await streamReader.read();
|
||||||
if (done) {
|
if (done) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { sleep } from 'utils/upload';
|
import { sleep } from 'utils/common';
|
||||||
|
|
||||||
const retrySleepTime = [2000, 5000, 10000];
|
const retrySleepTime = [2000, 5000, 10000];
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue