Ich habe und API-Link, was automatisch startet Datei herunterladen, wenn ich es in der Adressleiste folgen. Nennen wir es my-third-party-download-link-com.Express res.redirect zeigt Inhalte, aber keine Downloads
Aber wenn ich im Express-Framework res.redirect (my-third-party-downloading-link-com) eingestellt habe. Ich erhalte den Statuscode 301 und kann den Dateiinhalt in Vorschau-Registerkarte in Entwickler-Tools sehen. Aber ich kann Browser diese Datei nicht herunterladen.
Mein entsprechender Request-Handler wird wie folgt:
downloadFeed(req, res) {
const { jobId, platform, fileName } = req.query;
const host = platform === 'production' ? configs.prodHost :
configs.stageHost;
const downloadLink = `${host}/api/v1/feedfile/${jobId}`;
// I also tried with these headers
// res.setHeader('Content-disposition', 'attachment;
// filename=${fileName}.gz');
// res.setHeader('Content-Type', 'application/x-gzip');
res.redirect(downloadLink)
}
PS Nun, dieses Problem zu lösen, ich baue my-Drittanbieter-Download-Link-com auf Back-End, es sendet mit res.end und dann:
window.open(**my-third-party-downloading-link-com**, '_blank').
Aber ich mag diese Lösung nicht. Wie kann ich dem Browser mitteilen, dass er Inhalte von dieser Drittanbieter-API herunterladen soll?
Sie sind nicht richtig. Wir sprechen über Link von Drittanbietern, nicht über Datei auf dem Dateisystem des Servers. –
ok, dann können Sie diese andere Frage überprüfen, könnte es hilfreich sein https://stackoverflow.com/questions/26288055/how-to-send-a-file-from-remote-url-as-a-get-response -in-Knoten-js-express-app –