通过签名URL将图像上传到AWS
我正在尝试通过签名URL从NodeJS服务器(而不是从浏览器)将图像上传到aws-s3。要上传的图像已由NodeJS生成。我正在从aws获取签名URL,并将其成功上传到s3。
但是我的图像已损坏。由于某些原因,S3向我的图像添加了一些标题(比较图像)。
我在做什么错?
获取签名的URL:
try {
var params = {
Bucket: bucketName,
Key: 'FILE_NAME.png',
Expires: 60
};
const url = await s3.getSignedUrlPromise('putObject', params);
return url;
} catch (err) {
throw err;
}
上传到s3
var stats = fs.statSync(filePath);
var fileSizeInBytes = stats["size"];
const imageBuffer = fs.readFileSync(filePath);
var formData = {
'file': {
value: imageBuffer,
options: {
filename: 'FILE_NAME.png'
}
}
};
request({
method: 'put',
url,
headers: {
'Content-Length': fileSizeInBytes,
'Content-MD': md5(imageBuffer)
},
formData
}, function (err, res, body) {
console.log('body',body);
});
将实际图像和上载的图像比较到s3。 S3添加了一些标题:
我正在尝试通过签名URL从NodeJS服务器(而不是从浏览器)将图像上传到aws-s3。要上传的图像已由NodeJS生成。我正在从aws获取签名网址,并成功执行...
回答如下:尝试一下,它将为您服务
通过签名URL将图像上传到AWS
我正在尝试通过签名URL从NodeJS服务器(而不是从浏览器)将图像上传到aws-s3。要上传的图像已由NodeJS生成。我正在从aws获取签名URL,并将其成功上传到s3。
但是我的图像已损坏。由于某些原因,S3向我的图像添加了一些标题(比较图像)。
我在做什么错?
获取签名的URL:
try {
var params = {
Bucket: bucketName,
Key: 'FILE_NAME.png',
Expires: 60
};
const url = await s3.getSignedUrlPromise('putObject', params);
return url;
} catch (err) {
throw err;
}
上传到s3
var stats = fs.statSync(filePath);
var fileSizeInBytes = stats["size"];
const imageBuffer = fs.readFileSync(filePath);
var formData = {
'file': {
value: imageBuffer,
options: {
filename: 'FILE_NAME.png'
}
}
};
request({
method: 'put',
url,
headers: {
'Content-Length': fileSizeInBytes,
'Content-MD': md5(imageBuffer)
},
formData
}, function (err, res, body) {
console.log('body',body);
});
将实际图像和上载的图像比较到s3。 S3添加了一些标题:
我正在尝试通过签名URL从NodeJS服务器(而不是从浏览器)将图像上传到aws-s3。要上传的图像已由NodeJS生成。我正在从aws获取签名网址,并成功执行...
回答如下:尝试一下,它将为您服务