【问题标题】:Adding a new Meteor CollectionFS store添加一个新的 Meteor CollectionFS 存储
【发布时间】:2014-08-22 03:52:00
【问题描述】:

我一直在使用 CollectionFS 和 GraphicsMagick 在 S3 中裁剪和存储图像。我意识到图像对于移动设备来说太大了,现在我想存储缩小的版本。这是我尝试过的。

images = new FS.Collection("images", {
  stores: [
    new Store("images", imageOptions),
    new Store("thumbs", thumbOptions) // added later
  ]
});

thumbs 存储适用于新图像,但缩小旧图像的启动功能不起作用。

Meteor.startup(function () {
  images.find().forEach(function (fileObj) {
    if (!fileObj.copies.thumbs) {
      var readStream = fileObj.createReadStream('images');
      var writeStream = fileObj.createWriteStream('thumbs');
      gm(readStream)
        .scale(THUMB_DIM, THUMB_DIM)
        .stream()
        .pipe(writeStream);
    }
  });
});

有什么想法吗?会不会是来自S3readstream引起的?

【问题讨论】:

    标签: javascript amazon-s3 meteor graphicsmagick


    【解决方案1】:

    似乎您缺少 gm 命令中的第二个参数,它应该是原始文件名。我们使用以下迁移脚本在新商店中创建图像副本:

    Migrations.add({
        version: 2,
        name: 'Save old images to new image stores',
        up: function() {
            console.log('Save old images to new image stores');
            Images.find().fetch().forEach(function(image) {
                if (image.copies['32x32'].size === 0) {
                    console.log('creating 32x32 image: ' + image.name());
                    var readStream = image.createReadStream('original');
                    var writeStream = image.createWriteStream('32x32');
                    try {
                      gm(readStream, image.name()).resize(32, 32).stream().pipe(writeStream);
                    }
                    catch (e) {
                      console.log(e);
                    }
                }
                if (image.copies['80x80'].size === 0) {
                    console.log('creating 80x80 image: ' + image.name());
                    var readStream = image.createReadStream('original');
                    var writeStream = image.createWriteStream('80x80');
                    try {
                      gm(readStream, image.name()).resize(80, 80).stream().pipe(writeStream);
                    }
                    catch (e) {
                      console.log(e);
                    }
                }
            });
        },
        down: function() {
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-15
      • 1970-01-01
      • 2020-10-23
      • 1970-01-01
      • 1970-01-01
      • 2014-05-27
      • 2014-01-25
      • 1970-01-01
      相关资源
      最近更新 更多