如何使用Slingshot.createDirective将文件上载限制到Amazon S3

时间:2016-03-05 13:05:59

标签: meteor amazon-s3 meteor-slingshot

我试图限制我上传到亚马逊s3到10张图片,我遇到了这个链接 https://github.com/themeteorchef/uploading-files-to-amazon-s3/blob/master/code/server/slingshot.js

由于某种原因,它不适合我 这是我的代码

Slingshot.createDirective( "uploadToAmazonS3Cg2", Slingshot.S3Storage, {
  bucket: "bucket-name",
  region: 'ap-southeast-1',
  acl: "public-read",
  authorize: function () {
    return true;
  },
  key: function ( file ) {
    var user = Meteor.users.findOne( this.userId );
    return user.emails[0].address + "/screenshots" + "/" + file.name;
  }
});

这是我在html文件中的上传器

  Application ScreenShots:
  {{> uploader config="2"}}

这就是我根据上面附带的链接调用我的弹弓方法

 var uploader
  if (config === '1') {
      uploader = new Slingshot.Upload( "uploadToAmazonS3Cg1" );
  } 
  if (config === '2') {
      uploader = new Slingshot.Upload( "uploadToAmazonS3Cg2" );
  } else {
      uploader = new Slingshot.Upload( "uploadToAmazonS3Cg3" );
  }

我回复了,根据我的理解,它应该允许我上传尽可能多的内容,但我只能上传一个文件。 我在这里错过了什么吗?有没有其他方法可以设置限制?

1 个答案:

答案 0 :(得分:1)

查看source-code for slingshot,您需要一次上传一个文件。要限制用户总共上传的文件数,您需要使用授权功能并存储他们在Mongo中上传的文件数量。根据您的问题,我不确定您的总数是10个文件还是10个,但如果一次只有10个文件,您只需在文件输入元素上使用jQuery验证即可验证。< / p>