Der folgende Code wird verwendet, um eine .zip
Datei von unserer Webanwendung abzurufen. Die Datei wird erzeugt, indem eine andere Anwendung sicher geschlossen und dann gezippt wird, um sie schließlich zum Herunterladen zu senden.Rückruf bei rekursiver Funktion
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)
}
})
}
Dies funktioniert wie erwartet. Ich muss dies jedoch von einem anderen Skript aus verwenden. Also der obige Code gibt eine id
der heruntergeladenen Datei, dann von einem anderen Skript kann ich die .zip
extrahieren und die extrahierten Dateien in ein Verzeichnis mit der gleichen id
. Diese Dateien würden dann zum Download bereitgestellt werden.
EDIT Im Grunde muss ich dieses Skript auszuführen, um den Inhalt zu extrahieren, wenn es dann mit res.render()
eine Benutzeroberfläche heruntergeladen ist laden, wenn die beiden vorherigen Schritte abgeschlossen sind. Dies muss mit einer id
durchgeführt werden, so dass zwei Benutzer keine in Konflikt stehenden Dateien erstellen.
Was ist die Schwierigkeit, die Sie haben? Im Knoten in einen Ordner extrahieren, der mit 'http' versehen ist? – Pogrindis
Ich muss wissen, dass die Datei heruntergeladen wurde. Andernfalls wird der Benutzer versuchen, eine Datei herunterzuladen, die nicht existiert, die eine 404 erzeugen würde. – MindVox
Bitte sehen Sie meine ** EDIT ** – MindVox