单击时强制从S3下载

时间:2015-03-08 14:32:10

标签: meteor iron-router

我有存储在S3上的文件,我想在用户点击按钮时自动下载它们

到目前为止我所做的是有一条路线

/ LIB /路由/下载

var fs = Npm.require('fs');

Router.route("download", function() {
  console.log('retrieving ' + this.params.signedURL);
  this.response.writeHead(200, {'Content-type': 'appplication/pdf'}, this.params.signedURL);
  this.response.end(fs.readFileSync(this.params.signedURL));
}, { where: 'server', path: '/d/:signedURL'});

但这不起作用,因为我不能在客户端上使用fs。即使我可以,我也不确定这会起作用

关于如何最好地完成此任务的任何建议?

2 个答案:

答案 0 :(得分:1)

最简单的方法是使用cfs:s3 package作为CollectionFS的附加组件。这不仅支持S3,而且还可以在上传和下载S3时透明地将文件分成更小的块。

答案 1 :(得分:1)

我通过流星方法调用检索signedUrl,然后在用户单击下载按钮时执行此操作:

window.open(_signedURL,"_self");