Kết nối FTP JavaScript

Vào thời điểm bạn đọc xong bài đăng này, chúng tôi hy vọng chúng tôi đã hoàn thành công việc của mình bằng cách giúp bạn làm quen với việc viết Node. js để cuối cùng có thể kết nối và tương tác với các máy chủ SFTP. SFTP là một giao thức tiêu chuẩn và an toàn thường được sử dụng, tập trung vào việc truyền dữ liệu và tệp an toàn. Khi thiết lập kết nối với máy chủ, có một vài bước cần thiết để hoàn thành;

Yêu cầu

điều đầu tiên đầu tiên. sự chuẩn bị.

{
  "dependencies": {
    "ssh2-sftp-client": "^8.0.0"
  }
}
6 là ứng dụng khách SFTP cho nút. js, đóng vai trò là trình bao bọc xung quanh SSH2 để cung cấp mức độ trừu tượng cao cho chức năng liên quan đến SFTP. Khi bạn đã sẵn sàng cài đặt nó, hãy bắt đầu bằng cách chạy mã sau theo cách thủ công

npm install ssh2-sftp-client@^8.0.0

Hoặc thêm tệp

{
  "dependencies": {
    "ssh2-sftp-client": "^8.0.0"
  }
}
0 và khai báo các phụ thuộc của bạn trong đó

{
  "dependencies": {
    "ssh2-sftp-client": "^8.0.0"
  }
}

Sau đó, chạy như sau

npm install

Kết nối với SFTP

Để làm ví dụ cho bài đăng này, chúng tôi sẽ sử dụng biến môi trường có tên SFTPTOGO_URL, biến này chứa tất cả thông tin cần thiết để kết nối với máy chủ SFTP ở định dạng URI. sftp. //người sử dụng. mật khẩu @ máy chủ. Biến được phân tích cú pháp để trích xuất các phần URI bằng URI. parse và khóa máy chủ của máy chủ từ xa được xác minh theo mặc định bằng cách sử dụng

{
  "dependencies": {
    "ssh2-sftp-client": "^8.0.0"
  }
}
1

let Client = require('ssh2-sftp-client');

class SFTPClient {
  constructor() {
    this.client = new Client();
  }

  async connect(options) {
    console.log(`Connecting to ${options.host}:${options.port}`);
    try {
      await this.client.connect(options);
    } catch (err) {
      console.log('Failed to connect:', err);
    }
  }

  async disconnect() {
    await this.client.end();
  }

}
kết nối. js

Liệt kê tập tin

Sau khi kết nối hoạt động được thiết lập, bạn có thể sử dụng nó để liệt kê các tệp trên máy chủ SFTP từ xa. Điều này có thể được thực hiện bằng cách gọi phương thức danh sách của ssh2-sftp-client và lặp qua mảng được trả về, sau đó tương ứng với các tệp được tìm thấy trong đối số đường dẫn. Trong ví dụ của chúng tôi, chức năng trình bao bọc của chúng tôi chỉ in ra các tệp được tìm thấy trong đường dẫn từ xa

async listFiles(remoteDir, fileGlob) {
  console.log(`Listing ${remoteDir} ...`);
  let fileObjects;
  try {
    fileObjects = await this.client.list(remoteDir, fileGlob);
  } catch (err) {
    console.log('Listing failed:', err);
  }

  const fileNames = [];

  for (const file of fileObjects) {
    if (file.type === 'd') {
      console.log(`${new Date(file.modifyTime).toISOString()} PRE ${file.name}`);
    } else {
      console.log(`${new Date(file.modifyTime).toISOString()} ${file.size} ${file.name}`);
    }

    fileNames.push(file.name);
  }

  return fileNames;
}
tập tin danh sách. js

Cập nhật dử liệu

Bước tiếp theo là tải lên một tập tin. Sử dụng hàm

{
  "dependencies": {
    "ssh2-sftp-client": "^8.0.0"
  }
}
2 của đối tượng khách hàng và chuyển đường dẫn đến tệp cục bộ và đường dẫn từ xa (tệp cũng sẽ kết thúc tại đây sau khi tải lên). Một cuộc gọi chức năng sẽ trông như thế này.
{
  "dependencies": {
    "ssh2-sftp-client": "^8.0.0"
  }
}
3

async uploadFile(localFile, remoteFile) {
  console.log(`Uploading ${localFile} to ${remoteFile} ...`);
  try {
    await this.client.put(localFile, remoteFile);
  } catch (err) {
    console.error('Uploading failed:', err);
  }
}
tải lên tập tin. js

Tải tập tin

Để hoàn tất quy trình, bạn chỉ cần tải xuống các tệp. Sử dụng hàm

{
  "dependencies": {
    "ssh2-sftp-client": "^8.0.0"
  }
}
4 của đối tượng máy khách và chuyển đường dẫn đến tệp từ xa và đường dẫn cục bộ để lưu trữ tệp đã tải xuống. Bạn sẽ gọi hàm như vậy.
{
  "dependencies": {
    "ssh2-sftp-client": "^8.0.0"
  }
}
5

{
  "dependencies": {
    "ssh2-sftp-client": "^8.0.0"
  }
}
2tệp tải xuống. js

toàn bộ điều

Sau khi làm theo các bước trên, quá trình đã hoàn tất. Cuối cùng, nếu bạn muốn chạy toàn bộ chương trình từ đầu đến cuối, hãy sao chép đoạn mã sau và lưu dưới dạng

{
  "dependencies": {
    "ssh2-sftp-client": "^8.0.0"
  }
}
6

{
  "dependencies": {
    "ssh2-sftp-client": "^8.0.0"
  }
}
4chính. js

Cuối cùng, chạy nó bằng lệnh

{
  "dependencies": {
    "ssh2-sftp-client": "^8.0.0"
  }
}
5

Chúc mừng bạn đã kết nối với SFTP bằng Node. js

SFTP To Go với độ tin cậy và bảo mật tối đa

SFTP To Go cung cấp SFTP/FTPS/S3 được quản lý dưới dạng dịch vụ - độ tin cậy, bảo mật, tính khả dụng tối đa, chỉ với 1 phút thiết lập. Tuyệt vời cho các công ty thuộc mọi quy mô, mọi quy mô

FTP trong Javascript là gì?

FTP (Giao thức truyền tệp) là một giao thức không an toàn để truyền tệp từ máy chủ này sang máy chủ khác qua Internet .

Bạn có thể truy cập FTP thông qua trình duyệt không?

Một trong những cách đơn giản nhất để kết nối với trang FTP là bằng trình duyệt Web của bạn . Trước khi kết nối với máy chủ FTP, bạn nên biết tên máy chủ của nó (hoặc địa chỉ IP hoặc URL của nó) và rõ ràng là thông tin xác thực bảo mật cần thiết để có quyền truy cập vào nội dung FTP được chia sẻ.

FTP trong nút JS là gì?

node-ftp là mô-đun máy khách FTP dành cho nút. js cung cấp giao diện không đồng bộ để giao tiếp với máy chủ FTP .

Bạn có thể sử dụng putty cho FTP không?

Putty cũng có thể được sử dụng làm chương trình FTP để truyền tệp an toàn từ máy tính này sang máy tính khác, qua Internet hoặc qua mạng công ty.