Web application developer
PHP, Yii, MySQL, Node.js - JavaScript, HTML, CSS & SASS - Linux, AWS & serverless
The Node.js AWS SDK documentation for S3 shows how to use S3 getObject and putObject with a callback function - but what if you want to use getObject with a promise in an async function?
It's actually pretty simple, as the Node.js SDK allows you to chain on the promise() function to promisify it.
const AWS = require("aws-sdk");
const s3 = new AWS.S3({
apiVersion: "2006-03-01",
region: "eu-west-2",
});
exports.handler = async function handler(event) {
let s3Object = await s3.getObject({
Bucket: "my-bucket",
Key: "my-key"
}).promise();
}
You can also chain on the then() and catch() functions
exports.handler = async function handler(event) {
let s3Object = await s3.getObject({
Bucket: "my-bucket",
Key: "my-key"
}).promise().then(() => {
}).catch(() => {
});
}
AWS Node.js SDK docs for getObject: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getObject-property