1

次のコードは.zip、Web アプリケーションからファイルをフェッチするために使用されます。このファイルは、別のアプリケーションを安全に閉じて圧縮し、最後にダウンロード用に送信することによって生成されます。

var dl = function() {
    request({
        method: 'GET',
        uri: 'some_url',
        headers: {
            'User-Agent': 'Scripted-Download'
        },
        encoding: null,
        jar: true
    }, function(err, res, body) {
        if (err) throw(err)
        if (res.headers['content-type'] === 'application/zip;charset=utf-8') {
            process.stdout.write('\rDownloading file ..')
            var id = uuid.v4()
            , file = path.resolve(__dirname, '../../' + id + '.zip')
            fs.writeFile(file, body, function(err) {
                if (err) throw(err)
                process.stdout.write('\rFile downloaded ' + id + '.zip')
                process.exit(0)
            })
        } else {
            process.stdout.write('\rAwaiting file ..')
            setTimeout(dl(), 30 * 1000)
        }
    })
}

これは期待どおりに機能します。ただし、これを別のスクリプトから使用する必要があります。したがって、上記のコードはダウンロードしたファイルの を返し、id別のスクリプトから を抽出し.zip、抽出したファイルを同じid. これらのファイルは、ダウンロードできるようになります。

編集基本的に、このスクリプトを実行し、ダウンロード時にコンテンツを抽出しres.render()、前の 2 つの手順が完了したら UI をロードする必要があります。id2 人のユーザーが競合するファイルを作成しないように、これは で行う必要があります。

4

2 に答える 2