in amplify/backend/function/S3Trigger984fb593/src/reference-index.js [88:129]
async function resize(photoBody, bucketName, key) {
const keyPrefix = key.substr(0, key.indexOf('/upload/'))
const originalPhotoName = key.substr(key.lastIndexOf('/') + 1)
const originalPhotoDimensions = await Sharp(photoBody).metadata();
const thumbnail = await makeThumbnail(photoBody);
await Promise.all([
S3.putObject({
Body: thumbnail,
Bucket: bucketName,
Key: thumbnailKey(keyPrefix, originalPhotoName),
}).promise(),
S3.copyObject({
Bucket: bucketName,
CopySource: bucketName + '/' + key,
Key: fullsizeKey(keyPrefix, originalPhotoName),
}).promise(),
]);
await S3.deleteObject({
Bucket: bucketName,
Key: key
}).promise();
return {
photoId: originalPhotoName,
thumbnail: {
key: thumbnailKey(keyPrefix, originalPhotoName),
width: THUMBNAIL_WIDTH,
height: THUMBNAIL_HEIGHT
},
fullsize: {
key: fullsizeKey(keyPrefix, originalPhotoName),
width: originalPhotoDimensions.width,
height: originalPhotoDimensions.height
}
};
};