s3-bucket-stream
Version:
Readable stream of the Body of every object in an S3 bucket.
68 lines (67 loc) • 1.95 kB
JavaScript
;
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;