UNPKG

s3-bucket-stream

Version:

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

68 lines (67 loc) 1.95 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const aws_sdk_1 = __importDefault(require("aws-sdk")); const s3 = new aws_sdk_1.default.S3(); async function get(Bucket, Key) { return new Promise((resolve, reject) => { let params = { Bucket, Key }; s3.getObject(params, (err, data) => { if (err) reject(err); else resolve({ Body: data["Body"].toString(), Key, Bucket }); }); }); } exports.get = get; async function put(Bucket, Key, Body) { return new Promise((resolve, reject) => { let params = { Bucket, Key, Body }; s3.putObject(params, (err, _) => { if (err) reject(err); else resolve(); }); }); } exports.put = put; async function list(Bucket, StartAfter = undefined, MaxKeys = 1000) { return new Promise((resolve, reject) => { let params = { Bucket, MaxKeys }; if (StartAfter !== undefined && StartAfter !== null) { params.StartAfter = StartAfter; } // console.log(`Listing ${MaxKeys} from ${Bucket}`) s3.listObjectsV2(params, (err, data) => { if (err) reject(err); else { let contents = data["Contents"]; if (contents !== undefined) { let Keys = []; contents.forEach((c) => { if (c["Key"]) { Keys.push(c["Key"]); } }); resolve(Keys); } } }); }); } exports.list = list;