UNPKG

@cumulus/aws-client

Version:
32 lines 1.87 kB
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