0
私はs3バケットのアップロード画像のサイズを変更するためにラムダ関数を使っています。次のコードではほとんど問題が発生していません。 "const match "と" originalKey "私はいくつかの組み合わせを試しました。誰も私を助けませんでした。ラムダ関数の画像を一致させるには
'use strict';
const AWS = require('aws-sdk');
const S3 = new AWS.S3({
accessKeyId: "xxxxxxxxxxxx",
secretAccessKey: "yyyyyyyyyyy",
region: "us-east-1",
signatureVersion: 'v4',
});
const Sharp = require('sharp');
const BUCKET = "patientimg";
const URL = "https://s3.ap-south-1.amazonaws.com";
exports.handler = function(event, context, callback) {
const key = event.Records[0].s3.object.key;
const match = key.match(/(\d+)x(\d+)\/(.*)/);
const width =10;
const height =10;
const originalKey ="ImageName";
S3.getObject({Bucket: BUCKET, Key: originalKey}).promise()
.then(data => Sharp(data.Body)
.resize(width, height)
.toFormat('png')
.toBuffer()
)
.then(buffer => S3.putObject({
Body: buffer,
Bucket: BUCKET,
ContentType: "image/png",
Key: key,
}).promise()
)
.then(() => callback(null, {
statusCode: '301',
headers: {'location': "${URL}/${key}"},
body: "",
})
)
.catch(err => callback(err))
}
出力:
エラーが一致[1]、一致を発生しました[2]と、予め[3]
おかげと一致.....
errorMessage ":"指定されたキーは存在しません...高さ、幅、元のキーを明示的にした後です。上記のコードのように –
const match = key.match(/(\ d +)x(\ d +)\ /(。*)/);常にnullを返します –
誰がこのコードを書いたのですか? –