我有一个表单,您可以上传文件.我直接用船长上传文件,效果很好.
req.file('file').upload({
adapter: require('skipper-s3'),
key: 'key',
secret: 'secret',
bucket: 'bucketname'
}, function (err, uploadedFiles) {
if (err){
// ko
}
else{
// ok
}
});
Run Code Online (Sandbox Code Playgroud)
但我想首先调整大小然后上传文件,所以:
sharp(original).resize(800).quality(90).toBuffer(function(err, outputBuffer) {
if (err) {
// ko
}
// ok
outputBuffer;
});
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是:如何上传outputBuffer而不是req.file('file')?
小智 3
skipper-s3您可以使用aws-sdk模块来代替使用。将图像上传到磁盘(原始),处理它,上传它,然后删除原始图像。
var AWS = require(\'aws-sdk\'),\n fs = require(\'fs\');\n\nsharp(original).resize(800).quality(90).toBuffer(function(err, outputBuffer) {\n if (err) {\n ...\n } else {\n new AWS.S3({\n accessKeyId: \'your access key\', \n secretAccessKey: \'your secret\',\n params : { \n Bucket : \'your bucket\',\n Key: \'desired filename\'\n }\n });\n\n s3client.upload({ACL:\'public-read\', Body: outputBuffer}, function(err, result) {\n if(err) {\n //handle error\n } else {\n // continue, handle returned data\n fs.unlinkSync(original); // delete original\n }\n });\n }\n });\nRun Code Online (Sandbox Code Playgroud)\n\n或者,某些库(如gm)可以采用远程 URL。你可以使用skiper-s3上传,然后执行上面的过程(其中原始是s3 URL),它也可以工作\xe2\x80\x94确实不行实际上根本
\n| 归档时间: |
|
| 查看次数: |
1910 次 |
| 最近记录: |