我正在使用环回组件存储 将图像上传到服务器。
我想将通过服务器上传的每个图像转换为缩略图 View 并将其保存到容器中。 最初我使用本地文件存储来存储文件,一切正常。
在文件存储中,我使用 “quickthumb” 将图像转换为缩略图,然后将原始图像和缩略图大小的图像保存到容器中。
但现在我想使用带有环回组件存储的amazon S3 来存储我的图像。按照文档,我可以轻松地将图像上传到 amazon S3 存储桶。但我无法弄清楚如何将图像调整为缩略图 View 并将不同版本的图像与原始图像一起存储在 Amazon S3 服务器上。
这是我在使用文件存储实现它时所做的事情。
现在将其图像转换为缩略图大小
使用 quickthumb
这是我如何将它与环回一起使用。
common/models/container.js
module.exports = function(Container) {
var qt = require('quickthumb');
Container.afterRemote('upload', function(ctx, res, next) {
var file = res.result.files.file[0];
var file_path = "./server/storage/" + file.container + "/" + file.name;
var file_thumb_path = "./server/storage/" + file.container + "/thumb/" + file.name;
qt.convert({
src: file_path,
dst: file_thumb_path,
width: 100
}, function (err, path) {
});
next();
});
};
但现在要在将图像上传到 S3 服务器之前调整图像大小,我需要一些 express
语法,如 req.files.image
但这在回送中是不可能的?
请帮忙。
最佳答案
您可以完成您正在尝试的事情,但它需要三个步骤。
首先,使用 loopback-component-storage 将文件上传到本地。一旦有了它,您就可以根据需要对图像进行尽可能多的调整。但是您需要为图像指定某种唯一的名称以避免冲突。
其次,使用 AWS Node SDK 将这些新图像推送到您的 S3 存储桶。
最后,删除本地文件以自行清理。
这很简单。查看我为解决此类问题而整理的这个食谱:
https://github.com/dashby3000/recipe-s3-image-uploader
干杯!
丹尼斯
关于node.js - 环回组件存储 : How to convert image to thumbnail before uploading to Amazon S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32704530/