@cumulus/aws-client
Version:
Utilities for working with AWS
32 lines • 1.87 kB
TypeScript
import { AbortMultipartUploadRequest, CompleteMultipartUploadRequest, CompleteMultipartUploadOutput, CreateMultipartUploadRequest, UploadPartCopyRequest } from '@aws-sdk/client-s3';
export interface S3CompleteMultipartUploadOutput extends CompleteMultipartUploadOutput {
ETag: string;
}
declare type Chunk = {
start: number;
end: number;
};
/**
* Each part of a multi-part copy needs to specify a byte range to be copied.
* This byte range has a starting byte and an ending byte (inclusive) that makes
* up the part. The maximum allowed chunk size is 5368709120 bytes.
*
* This function takes a file size and an optional maxSize. It returns an array
* of objects, each containing a `start` and an `end` value. These will make up
* the ranges of the multi-part copy.
*
* From anecdotal testing, a chunk size of 250 MB seems to perform fairly well.
*
* https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
*
* @param {number} objectSize - size of the object
* @param {number} chunkSize - chunk size of the S3 multipart uploads
* @returns {Promise<Array<Chunk>>} - array of chunks
*/
export declare const createMultipartChunks: (objectSize: number, chunkSize?: number) => Chunk[];
export declare const createMultipartUpload: (params: CreateMultipartUploadRequest) => Promise<import("@aws-sdk/client-s3").CreateMultipartUploadCommandOutput>;
export declare const completeMultipartUpload: (params: CompleteMultipartUploadRequest) => Promise<S3CompleteMultipartUploadOutput>;
export declare const abortMultipartUpload: (params: AbortMultipartUploadRequest) => Promise<import("@aws-sdk/client-s3").AbortMultipartUploadCommandOutput>;
export declare const uploadPartCopy: (params: UploadPartCopyRequest) => Promise<import("@aws-sdk/client-s3").UploadPartCopyCommandOutput>;
export {};
//# sourceMappingURL=S3MultipartUploads.d.ts.map