UNPKG

s3-bucket-stream

Version:

Readable stream of the Body of every object in an S3 bucket.

50 lines (49 loc) 1.66 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = require("fs"); const s3object_1 = __importDefault(require("../aws/s3object")); async function get(Bucket, Key) { let buffer = await fs_1.promises.readFile(`./s4/${Bucket}/${Key}`); let obj = new s3object_1.default(Key, Bucket, buffer.toString()); return obj; } exports.get = get; async function put(Bucket, Key, Body) { return new Promise((resolve) => { fs_1.writeFile(`./s4/${Bucket}/${Key}`, Body, () => { resolve(); }); }); } exports.put = put; async function list(Bucket, StartAfter = undefined, MaxKeys = 1000) { return new Promise((resolve, reject) => { fs_1.promises.readdir(`./s4/${Bucket}`).then((files) => { let sorted = files.sort(); if (StartAfter === undefined) { if (sorted.length > 0) { resolve(sorted.slice(0, MaxKeys)); } else { reject(); } } else { let startIndex = sorted.indexOf(StartAfter); if (startIndex !== -1) { resolve(sorted.slice(startIndex + 1, startIndex + 1 + MaxKeys)); } else if (sorted.length > 0) { resolve(sorted.slice(0, MaxKeys)); } else { reject(); } } }); }); } exports.list = list;