gpt4 book ai didi

Sails.js 使用 Skipper 将文件上传到 AWS S3

转载 作者:行者123 更新时间:2023-12-03 06:32:38 25 4
gpt4 key购买 nike

我有一个可以上传文件的表单。我直接用船长上传文件,效果很好。

req.file('file').upload({
adapter: require('skipper-s3'),
key: 'key',
secret: 'secret',
bucket: 'bucketname'
}, function (err, uploadedFiles) {
if (err){
// ko
}
else{
// ok
}
});

但我想先调整大小,然后上传文件,所以:

sharp(original).resize(800).quality(90).toBuffer(function(err, outputBuffer) {
if (err) {
// ko
}
// ok
outputBuffer;
});

所以,我的问题是:如何上传 outputBuffer 而不是 req.file('file')

最佳答案

您可以使用 aws-sdk 而不是使用 skipper-s3模块。将图像上传到磁盘(原始),处理它,上传它,然后删除原始图像。

var AWS = require('aws-sdk'),
fs = require('fs');

sharp(original).resize(800).quality(90).toBuffer(function(err, outputBuffer) {
if (err) {
...
} else {
new AWS.S3({
accessKeyId: 'your access key',
secretAccessKey: 'your secret',
params : {
Bucket : 'your bucket',
Key: 'desired filename'
}
});

s3client.upload({ACL:'public-read', Body: outputBuffer}, function(err, result) {
if(err) {
//handle error
} else {
// continue, handle returned data
fs.unlinkSync(original); // delete original
}
});
}
});

或者,某些库(如 gm )可以采用远程 URL。您可以使用skiper-s3上传,然后执行上面的过程(其中原始是s3 URL),它也可以工作——但实际上根本没有性能。

关于Sails.js 使用 Skipper 将文件上传到 AWS S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26867554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com