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ôngnpm 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"
}
}
1let 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. jsLiệ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. jsCậ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"
}
}
3async 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. jsTả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. jstoà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. jsCuối cùng, chạy nó bằng lệnh
{
"dependencies": {
"ssh2-sftp-client": "^8.0.0"
}
}
5Chú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ô