Filepicker.io

为了扩展,我们必须停止在服务器上使用本地存储,并开始使用专用文件存储服务或实现水平存储层。开始使用可扩展文件存储的最简单方法是使用像 Filepicker.io 这样的解决方案,它支持 S3,Azure,Rackspace 和 Dropbox。loadpicker 已经成为流行的 Filerpicker unipackage 一段时间了。

meteor add mrt:filepicker

Filepicker 模式与其他解决方案完全不同,因为它实际上是关于第三方集成。首先添加一个 filepicker 输入,你将看到它在很大程度上依赖于 data- *属性,这在 Meteor 应用程序中是一种相当罕见的模式。

<input type="filepicker"
  id="filepickerAttachment"
  data-fp-button-class="btn filepickerAttachment"
  data-fp-button-text="Add image" 
  data-fp-mimetypes="image/*"
  data-fp-container="modal"
  data-fp-maxsize="5000000" 
  data-fp-services="COMPUTER,IMAGE_SEARCH,URL,DROPBOX,GITHUB,GOOGLE_DRIVE,GMAIL">

你还需要设置 API 密钥,构建 filepicker 小部件,触发它,并观察它的输出。

if(Meteor.isClient){
  Meteor.startup(function() {
    filepicker.setKey("YourFilepickerApiKey");
  });
  Template.yourTemplate.rendered = function(){
    filepicker.constructWidget($("#filepickerAttachment"));
  }
  Template.yourTemplate.events({
  'change #filepickerAttachment': function (evt) {
    console.log("Event: ", evt, evt.fpfile, "Generated image url:", evt.fpfile.url);
  });
});