Search code examples
file-uploadmeteordropbox-apicollectionfs

CollectionFS/Meteor-CollectionFS uploading files of 0 bytes


I am trying to upload files to a dropbox app. Using the package CollectionFS/Meteor-CollectionFS with the cfs:dropbox adapter and my problem is that the files being uploaded is 0 bytes. I am not sure what I am missing or doing wrong here.

On server:

var registrationImageStorage = new FS.Store.Dropbox("registrationStorage", {
  key: "****",
  secret: "****",
  token: "****",
  transformWrite: function (fileObj, readStream, writeStream) {
    gm(readStream, fileObj.name()).stream().pipe(writeStream);
  }
});

RegistrationImages = new FS.Collection("registrations", {
  stores: [registrationImageStorage],
  filter: {
    allow: {
      contentTypes: ['image/*']
    }
  }
});

RegistrationImages.allow({
  insert: function () {
    return true;
  },
  update: function () {
    return true;
  }
});

On client:

var registrationImageStorage = new FS.Store.Dropbox("registrationStorage");

RegistrationImages = new FS.Collection("registrations", {
  stores: [registrationImageStorage],
  filter: {
    allow: {
      contentTypes: ['image/*']
    }
  }
});

On client to start the upload:

var file = new FS.File($('#badgeImage').get(0).files[0]);

    RegistrationImages.insert(file, function (err, fileObj) {
      if (err) {
        console.log(err);
      } else {
        console.log(fileObj);
    });

Solution

  • Ok, I did not need this part of the code and after removing it, it worked:

    transformWrite: function (fileObj, readStream, writeStream) {
        gm(readStream, fileObj.name()).stream().pipe(writeStream);
      }