UNPKG

@tokenizer/s3

Version:
35 lines 1.22 kB
import { GetObjectCommand } from '@aws-sdk/client-s3'; import { parseContentRange, tokenizer } from '@tokenizer/range'; import { fromStream } from 'strtok3'; import { S3Request } from './s3-request.js'; /** * Initialize streaming tokenizer * @param s3 client * @param objRequest S3 object request * @return Tokenizer supporting random-access */ export async function makeStreamingTokenizerFromS3(s3, objRequest) { const s3request = new S3Request(s3, objRequest); const info = await s3request.getRangedRequest([0, 0]); const contentRange = parseContentRange(info.ContentRange); const output = await s3.send(new GetObjectCommand(objRequest)); return fromStream(output.Body, { fileInfo: { mimeType: info.ContentType, size: contentRange.instanceLength } }); } /** * Initialize chunked / random access tokenizer to S3 object * @param s3 S3 client * @param objRequest S3 object request * @return Streaming tokenizer */ export async function makeChunkedTokenizerFromS3(s3, objRequest) { const s3request = new S3Request(s3, objRequest); return tokenizer(s3request, { avoidHeadRequests: true }); } //# sourceMappingURL=index.js.map