0

次のような絶対FTP URLを使用してファイルをダウンロードしたいftp://host:port/dir/file.extension

私は試しましnode-libcurl, wget, wget-improved, requestた。プロトコルは HTTP または HTTPS のいずれかである必要があると言って、すべて失敗しました。

Node で利用可能な FTP クライアントがあります (npmjs で利用可能)。ただし、ドキュメントによると、FTP サーバーへの接続を作成し、ディレクトリを変更してからダウンロードする必要があります。

簡単な解決策はありますか?

4

2 に答える 2

2

ここでは簡単なアプローチの概要を説明します (コードによる完全な解決策はありません!)。FTPは、人間が読める単純なプロトコルを持つTCPに基づいています。FTP サーバーからファイルを取得するには、次の手順を実行する必要があります。

  1. を使用して TCP ソケットを作成します。net.Socket
  2. socket.connectポート 21 で FTP サーバーに接続するために使用します。
  3. socket.writeデータの送信とデータのsocket.on('data')読み取りに使用するサーバーと通信する

簡単なファイル取得のための FTP プロトコルの例は、このブログ投稿で提供されており、次のように要約できます。

  1. を使用してサーバーに接続しますnet.Socket.connect
  2. USERコマンドでユーザーを設定
  3. で認証するPASS
  4. を使用して目的のディレクトリに移動しますCWD
  5. を使用してパッシブ モードに変更します。PASV
  6. サーバーの応答を読んで、ファイルを取得するために接続する IP とポートを見つけます
  7. 前の手順の IP とポートで別のソケットを開きます
  8. ほら!
于 2016-08-05T09:43:30.610 に答える