我正在使用 loopback component storage 将图像上传到服务器 .
我想将通过服务器上传的每个图像转换为 thumbnail view 并将其保存到容器中 . 最初我使用本地文件存储来存储文件,一切正常 .
在文件存储中,我使用 "quickthumb" 将图像转换为缩略图,然后将原始图像和缩略图大小图像保存到容器中 .
但现在我想使用带有环回组件存储的 amazon S3 来存储我的图像 . 通过遵循文档,我可以轻松地将图像上传到亚马逊S3桶 . 但我无法弄明白 how to resize image to thumbnail view and store different versions of image along with original image on Amazon S3 server.
这是我在使用文件存储实现它时所做的事情 .
现在将其转换为 Thumbnail size
这是我如何使用它与loopback .
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服务器之前实现调整大小,我需要像_818194这样的语法,但这在环回中是不可能的?请帮忙 .
3 回答
你可以完成你正在尝试的,但它需要三个步骤 .
首先,使用loopback-component-storage在本地上传文件 . 一旦你有了它,你可以根据自己的喜好创建尽可能多的图像调整 . 但是你需要给图像一些独特的名称以避免碰撞 .
其次,使用AWS Node SDK将这些新映像推送到S3存储桶 .
最后,删除本地文件以自行清理 .
这很简单 . 看看我把这个问题拼凑起来解决这些问题:
https://github.com/dashby3000/recipe-s3-image-uploader
干杯!
丹尼斯
感谢名单 . @Dennis回答 . 我发现自己也是其他方式,我发布它 .
你检查了Strongloop挂钩https://docs.strongloop.com/display/public/LB/Adding+logic+to+models吗?您可以在调用存储组件之前尝试创建Hook