【发布时间】:2023-01-15 02:33:03
【问题描述】:
我尝试使用 AWS lambda API 网关在 s3 存储桶中上传图片和视频
成功上传图像并获得位置也作为响应,但我无法预览它
const multipart = require('aws-lambda-multipart-parser');
const AWS = require('aws-sdk');
const { config } = require('./config')
const { v4: uuidv4 } = require('uuid')
const fs = require('fs');
const s3 = new AWS.S3({
accessKeyId:config?.dev?.aws_s3?.ACCESS_KEY,
secretAccessKey:config?.dev?.aws_s3?.SECRET_KEY
})
//After the parse data from the event. Event declared as a param
const result = await multipart.parse(param);
let myFile= result.media.filename.split(".")
let fileType = myFile[myFile.length - 1];
const fileName = uuidv4()+'.'+fileType;
const uploadData = {
Bucket : config?.dev?.aws_s3?.BUCKETNAME,
Key : fileName,
Body : Buffer.from(result.media.content, 'binary'),
ContentType : result.media.contentType,
ACL : 'public-read',
Conditions: [
['content-length-range', 0, 10000000] // 10 Mb
]
}
try {
const responseData = await s3.upload(uploadData).promise()
return {
"body" : {
"message" : "Image uploaded successfully",
"data" : responseData
},
'statusCode': 200
}
} catch (e) {
return {
"body" : {
"message" : e.message
},
'statusCode': 500
}
}
// Uploading Data to s3
// Response
{
"message": "Image uploaded successfully",
"data": {
"ETag": "\"662d32878c3e0628d2958e95fc055855\"",
"Location": "https://bucketname.s3.amazonaws.com/03c2fcd1-ab92-42a8-93cf-d6a89545c77e.jpeg",
"key": "03c2fcd1-ab92-42a8-93cf-d6a89545c77e.jpeg",
"Key": "03c2fcd1-ab92-42a8-93cf-d6a89545c77e.jpeg",
"Bucket": "bucketname"
}
}
问题是图像未加载。你能帮助解决这个问题吗?应该支持它的视频和音频
错误:图像无法显示,它包含错误
【问题讨论】:
标签: node.js amazon-s3 aws-lambda aws-sdk multipartform-data