UNPKG

@tokenizer/s3

Version:
37 lines (36 loc) 1.25 kB
import { type IRangeRequestClient, type IRangeRequestResponse } from '@tokenizer/range'; import { type GetObjectRequest, GetObjectCommand } from '@aws-sdk/client-s3'; type ByteRangeRequest = [number, number]; export interface S3RequestResponse { ContentType?: string; ContentRange?: string; Body?: unknown; } export interface S3RequestClient { send(command: GetObjectCommand, options?: { abortSignal?: AbortSignal; }): Promise<S3RequestResponse>; } /** * Use S3-client to execute actual HTTP-requests. */ export declare class S3Request implements IRangeRequestClient { private s3; private objRequest; private readonly abortController; constructor(s3: S3RequestClient, objRequest: GetObjectRequest); /** * Concatenate given array of Uint8Arrays * @param arrays Array of Uint8Arrays */ private static mergeUint8Arrays; buildArrayBuffer(response: S3RequestResponse): Promise<Uint8Array>; getResponse(_method: string | undefined, range: ByteRangeRequest): Promise<IRangeRequestResponse>; /** * Do a ranged request * @param range Range request */ getRangedRequest(range: ByteRangeRequest): Promise<S3RequestResponse>; abort(): void; } export {};