次のコードは.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 をロードする必要があります。id
2 人のユーザーが競合するファイルを作成しないように、これは で行う必要があります。