是否有一个服务可以创建一个文件的一次性下载,最好是我可以从NodeJS中使用的东西?
我在FilePicker上做了一些研究,还没有发现任何关于重新生成它为文件提供的链接的信息。也许有一种方法可以用NodeJS实现这一点,但是我同时使用Meteor,所以很多节点可能会发生冲突。
发布于 2013-03-21 05:29:07
你可以用流星建造它。使用流星路由器和陨石 &使用服务器端路由来传递文件。
您需要一个集合来跟踪下载的文件:
服务器JS
var downloads = new Meteor.Collection("downloads");
//create a link
downloads.insert({url:"/mydownload.zip",downloaded:false})
Meteor.Router.add('/file/:id', 'GET', function(id) {
download = downloads.findOne(id);
if( download) {
if(dowload.downloaded) {
this.response.send("You've already downloaded me")
}
else
{
//I guess you could just redirect or stream the file for an extra layer of surety
this.response.redirect(download.url);
}
}
});在客户端上,您可以将/files/{{_id}}与文件的_id一起使用,该文件由person作为链接下载而来。
发布于 2013-03-21 21:19:19
我的建议还将是添加自定义服务器端逻辑来计数上传的#(或者只是将文件标记为下载/未下载)并作出相应的响应。最接近Filepicker.io的方法是使用安全策略将文件下载限制在特定的时间间隔内。
发布于 2013-03-24 19:52:50
除了使用router包
在Meteor.startup中,您可以添加
var require = __meteor_bootstrap__.require;
fs = require( 'fs' );应该只在服务器上声明fs变量。fs包由Meteor使用,不需要单独添加。
一旦您这样做了,您就可以创建以Meteor.uuid()作为其名称的文件,这使得它们非常独特,很难猜测。使用Meteor.setTimeout也可以在一段时间后删除该文件。
问题是:要下载的文件来自哪里?
https://stackoverflow.com/questions/15539964
复制相似问题