Meteor和S3:如何通过一次上传/编辑定义三个不同的图像

Meteor and S3: How to define three different images by one upload/editing

本文关键字:定义 编辑 三个 图像 S3 何通过 Meteor 一次      更新时间:2023-09-26

我使用edgee:slingshot将图像上传到S3。这很有效。但我想要三种不同的图像——我称之为"商店"。一个用于缩略图的存储区,一个用于原始图像的存储区和一个用于裁剪的公共版本的存储区。

但我不知道我该如何聪明地做到这一点。

当然,我可以在三个桶上做三个不同的Slingshot.Upload()。但我认为只上传一个文件,处理文件(通过graphicsmagick裁剪)并存储三个不同的文件会更明智。

稍后我想编辑公共文件,同时创建一个新的缩略图。

client.js

Template.uploader.events({
    'change .uploadFile': function(event, template) {
        event.preventDefault();
        var upload = new Slingshot.Upload("directiveUpload");
    }
});

server.js

Slingshot.createDirective("directiveUpload", Slingshot.S3Storage, {
    AWSAccessKeyId: "keyid",
    AWSSecretAccessKey: "accesskey",
    bucket: "video",
    acl: "public-read",
});

共享.js

Images = new Mongo.Collection('images');

一个显而易见的解决方案是利用AWS Lambda来处理上传到s3存储桶中的图像文件。

亚马逊实际上有一个关于如何使用AmazonS3和Lambda来完成您所说的操作的教程。

看看:教程:将AWS Lambda与Amazon S3 一起使用