Nodejsでファイルをダウンロードする方法

王林
リリース: 2023-05-27 20:43:05
オリジナル
1328 人が閲覧しました

Node.js では、node-fetch モジュールと fs モジュールを使用してファイルをダウンロードできます。これら 2 つのモジュールを使用してファイルをダウンロードする方法は次のとおりです。

まず、node-fetch モジュールと fs モジュールをインストールする必要があります。 npm コマンドを使用してインストールできます。

npm install node-fetch fs
ログイン後にコピー

インストールが完了したら、これら 2 つのモジュールを使用できます。

ファイルのダウンロード

ファイルをダウンロードするプロセスは、いくつかのステップに分けることができます。

  1. HTTP リクエストを送信してファイル データを取得する
  2. データ ファイル

次は、ファイルをダウンロードするためのサンプル コードです:

const fetch = require('node-fetch'); const fs = require('fs'); const downloadFile = async (url, dest) => { const response = await fetch(url); if (!response.ok) { throw new Error(`failed to download file: ${response.statusText}`); } const fileStream = fs.createWriteStream(dest); await new Promise((resolve, reject) => { response.body.pipe(fileStream); response.body.on("error", (err) => { reject(err); }); fileStream.on("finish", function() { resolve(); }); }); }; const fileUrl = 'https://example.com/files/file.txt'; const destPath = 'file.txt'; downloadFile(fileUrl, destPath) .then(() => { console.log('file downloaded successfully'); }) .catch((err) => { console.error('failed to download file:', err); });
ログイン後にコピー

このコードは、まずノードフェッチ モジュールを使用して HTTP リクエストを送信し、ファイル データを取得します。 fs モジュールを使用してデータをファイルに書き込みます。ファイルデータの取得処理中に、HTTP レスポンスのステータスコードが 200 であるかどうかを確認する必要があることに注意してください。そうでない場合は、ダウンロードは失敗しています。

コードでは、async/await 非同期構文と Promise オブジェクトを使用して、結果が出力される前にファイル データが書き込まれるようにします。

その他のオプション

上記のサンプル コードは、ファイルをダウンロードする簡単な例にすぎません。さらに多くのオプションや機能が必要な場合は、他のパラメーターを使用してコードを調整できます。

  1. HTTP リクエスト ヘッダーの指定

node-fetch の headers パラメーターを使用して、HTTP リクエスト ヘッダーを指定できます。例:

const headers = { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' }; const response = await fetch(url, { headers: headers });
ログイン後にコピー
  1. ダウンロード速度の制限

ダウンロード速度を制限する必要がある場合は、サードパーティ モジュールのスピードラインを使用できます。例:

const speedline = require('speedline'); const fileUrl = 'https://example.com/files/file.txt'; const destPath = 'file.txt'; const maxSpeed = 100; // 100 KB/s const response = await fetch(fileUrl); const stream = response.body; const fileStream = fs.createWriteStream(destPath); await speedline(stream.pipe(fileStream), maxSpeed);
ログイン後にコピー
  1. キャッシュ ダウンロード ファイル

キャッシュが必要な場合 ファイルをダウンロードするには、サードパーティ モジュールのノード キャッシュを使用できます。例:

const NodeCache = require('node-cache'); const fileCache = new NodeCache(); const downloadFile = async (url, dest) => { const cachedData = fileCache.get(url); if (cachedData) { return fs.writeFileSync(dest, cachedData); } const response = await fetch(url); if (!response.ok) { throw new Error(`failed to download file: ${response.statusText}`); } const fileData = await response.text(); fileCache.set(url, fileData); fs.writeFileSync(dest, fileData); };
ログイン後にコピー

上記は、ファイルをダウンロードするための基礎知識とサンプル コードです。 Node.jsを使用して。実際のニーズとネットワーク環境に応じて、ファイルのダウンロードに適したパラメータと方法を選択できます。

以上がNodejsでファイルをダウンロードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!