0

基本的にファイルの1 回限りのダウンロードを作成するサービス、できれば NodeJS から使用できるサービスはありますか?

FilePicker について調査しましたが、ファイルのリンクを再生成する方法については何も見つかりませんでした。NodeJSでこれを行う方法があるかもしれませんが、私は同時にMeteorを使用しているため、多くのNodeが競合する可能性があります.

4

4 に答える 4

1

あなたは流星でそれを構築することができます。meteor-routermeteoriteを使用し、サーバー側のルーティングを使用してファイルを配信します。

ダウンロードしたファイルを追跡するには、コレクションが必要です。

サーバー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で使用できます

于 2013-03-21T05:29:07.963 に答える
0

私のお勧めは、カスタムのサーバー側ロジックを追加して、アップロード数をカウントし (またはファイルにダウンロード済み/未ダウンロードのフラグを立てるだけ)、それに応じて応答することです。Filepicker.io でできる最も近いのは、セキュリティ ポリシーを使用して、ファイルのダウンロードを特定の時間間隔に制限することです。

于 2013-03-21T21:19:19.320 に答える
0

routerパッケージの使用に加えて

Meteor.startup で追加できます

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

fs変数はサーバー上でのみ宣言する必要があります。fs パッケージは Meteor によって使用されるため、個別に追加する必要はありません。

Meteor.uuid()これを行うと、一意で推測しにくい名前のファイルを作成できます。を使用して、一定時間後にファイルを削除することもできますMeteor.setTimeout

問題は、ダウンロードするファイルはどこから来るのかということです。

于 2013-03-24T19:52:50.497 に答える