Làm cách nào để truy cập sftp trong python?

Xử lý mọi thứ qua SFTP bằng tập lệnh của riêng bạn luôn có thể hữu ích, nếu bạn đang làm việc với Python, PySftp là thư viện mà bạn cần để làm việc với công nghệ này mà không phải đau đầu vì nó khá dễ sử dụng. pysftp là một trình bao bọc xung quanh Paramiko với giao diện Python-ish hơn. Thư viện Paramiko là một thư viện python tuyệt vời và nó là xương sống của pysftp. Các phương thức mà pysftp đã tạo là các phần trừu tượng phục vụ năng suất của lập trình viên bằng cách đóng gói nhiều trường hợp sử dụng chức năng cao hơn để tương tác với SFTP. Thay vì viết mã của riêng bạn để duyệt các thư mục và gọi get và put, xử lý không chỉ paramiko mà cả các mô-đun os và stat của Python và các bài kiểm tra viết [nhiều đoạn mã trên mạng không đầy đủ và không tính đến các trường hợp cạnh] cung cấp pysftp . Để bạn tập trung vào nhiệm vụ chính của mình

1. Cài đặt PySftp

giao diện pysftp không hiển thị tất cả các tính năng của Paramiko nhưng tóm tắt rất nhiều tính năng trong các phương thức đơn lẻ. Mặt khác, pysftp triển khai nhiều tính năng cấp cao hơn trên Paramiko, đáng chú ý là truyền tệp đệ quy

Để cài đặt pysftp trên môi trường của bạn bằng Pip, hãy chạy lệnh sau

python -m pip install pysftp

Để biết thêm thông tin về PySftp, đừng quên truy cập trang web tài liệu chính thức tại đây hoặc kho lưu trữ pyp tại đây

2. Cách sử dụng

Việc sử dụng thư viện này và nhiều tác vụ mà bạn cần thực hiện với thư viện này sẽ được hiển thị cơ bản với rất nhiều ví dụ

Liệt kê các tập tin từ một thư mục

Bạn có thể liệt kê nội dung của một thư mục bằng đoạn mã sau. Sau khi mở kết nối, bạn cần chuyển từ thư mục bằng phương thức cwd hoặc chdir và cung cấp thư mục từ xa làm đối số đầu tiên

import pysftp

myHostname = "yourserverdomainorip.com"
myUsername = "root"
myPassword = "12345"

with pysftp.Connection[host=myHostname, username=myUsername, password=myPassword] as sftp:
    print "Connection succesfully stablished .. "

    # Switch to a remote directory
    sftp.cwd['/var/www/vhosts/']

    # Obtain structure of the remote directory '/var/www/vhosts'
    directory_structure = sftp.listdir_attr[]

    # Print data
    for attr in directory_structure:
        print attr.filename, attr
    
# connection closed automatically at the end of the with-block

Thao tác này sẽ in một hàng trong bảng điều khiển với đối tượng SFTPAttributes của mọi tệp/thư mục trong thư mục từ xa. Danh sách theo thứ tự tùy ý. Nó không bao gồm các mục đặc biệt ‘. ' và '. ’. Mỗi đối tượng SFTPAttributes được trả về sẽ có một trường bổ sung. tên dài, có thể chứa chuỗi thuộc tính của tệp được định dạng, ở định dạng unix. Nội dung của chuỗi này sẽ phụ thuộc vào máy chủ SFTP

.skel drwxr-xr-x   1 0        0            4096 10 Jul 17:39 .skel
bestfreehtmlcsstemplates.com drwx--x---   1 10002    1002         4096 22 Jul 15:51 bestfreehtmlcsstemplates.com
chroot drwxr-x---   1 0        0            4096 10 Jul 17:39 chroot
default drwxr-xr-x   1 0        0            4096 10 Jul 17:36 default
eagle148.startdedicated.com drwx--x---   1 10000    1002         4096 25 Jul 17:53 eagle148.startdedicated.com
fs drwxr-xr-x   1 0        0            4096 10 Jul 18:03 fs
fs-passwd drwxr-x---   1 999      33           4096 10 Jul 18:03 fs-passwd
ourcodeworld.com drwx--x---   1 10001    1002         4096 10 Sep 15:30 ourcodeworld.com
system drwxr-xr-x   1 0        0            4096 19 Jul 10:26 system

Tải tập tin từ xa

Để tải xuống một tệp từ xa, hãy mở một kết nối và từ đối tượng sftp, sử dụng phương thức get mong đợi đường dẫn của tệp từ xa sẽ được tải xuống và làm đối số thứ hai, đường dẫn cục bộ nơi tệp sẽ được lưu trữ

import pysftp

myHostname = "yourserverdomainorip.com"
myUsername = "root"
myPassword = "12345"

with pysftp.Connection[host=myHostname, username=myUsername, password=myPassword] as sftp:
    print "Connection succesfully stablished .. "

    # Define the file that you want to download from the remote directory
    remoteFilePath = '/var/integraweb-db-backups/TUTORIAL.txt'

    # Define the local path where the file will be saved
    # or absolute "C:\Users\sdkca\Desktop\TUTORIAL.txt"
    localFilePath = './TUTORIAL.txt'

    sftp.get[remoteFilePath, localFilePath]
 
# connection closed automatically at the end of the with-block

Cập nhật dử liệu

Để tải tệp lên máy chủ của bạn qua SFTP, chỉ cần sử dụng phương thức put của ứng dụng khách SFTP. Phương thức này mong muốn đối số đầu tiên là đường dẫn cục bộ tương đối hoặc tuyệt đối của tệp mà bạn muốn tải lên và đối số thứ hai là đường dẫn từ xa nơi tệp sẽ được tải lên

import pysftp

myHostname = "yourserverdomainorip.com"
myUsername = "root"
myPassword = "12345"

with pysftp.Connection[host=myHostname, username=myUsername, password=myPassword] as sftp:
    print "Connection succesfully stablished .. "

    # Define the file that you want to upload from your local directorty
    # or absolute "C:\Users\sdkca\Desktop\TUTORIAL2.txt"
    localFilePath = './TUTORIAL2.txt'

    # Define the remote path where the file will be uploaded
    remoteFilePath = '/var/integraweb-db-backups/TUTORIAL2.txt'

    sftp.put[localFilePath, remoteFilePath]
 
# connection closed automatically at the end of the with-block

Xóa tài liệu

Nếu bạn sẵn sàng xóa một tệp khỏi máy chủ của mình, bạn có thể thực hiện việc đó bằng phương thức xóa mà đối số đầu tiên mong đợi là đường dẫn tuyệt đối đến tệp từ xa

import pysftp

myHostname = "yourserverdomainorip.com"
myUsername = "root"
myPassword = "12345"

with pysftp.Connection[host=myHostname, username=myUsername, password=myPassword] as sftp:
    print "Connection succesfully stablished .. "

    # Define the file that you want to upload from your local directorty
    sftp.remove['/var/custom-folder/TUTORIAL2.txt']
 
# connection closed automatically at the end of the with-block

Hãy nhớ rằng PySftp có nhiều phương pháp mà bạn có thể sử dụng để thực hiện nhiều việc, chẳng hạn như xử lý quyền, v.v. vì vậy đừng quên kiểm tra trang web tài liệu chính thức tại đây

Làm cách nào để đọc tệp từ máy chủ SFTP bằng Python?

Trong các ví dụ Python khác nhau sau đây, pysftp được sử dụng để kiểm tra tệp chính khi cố gắng kết nối với máy chủ SFTP và cung cấp danh sách tệp và đường dẫn. với pysftp. Kết nối[máy chủ=Tên máy chủ, tên người dùng=Tên người dùng, mật khẩu=Mật khẩu, cnopts=cnopts] dưới dạng sftp. in “Đã thiết lập kết nối thành công … ”

Làm cách nào để kết nối với máy chủ SFTP bằng khóa riêng trong Python?

Để kết nối bằng tệp chính, bạn sẽ muốn chuyển đường dẫn đến tệp chính khi tạo kết nối. Để làm điều này, bạn sẽ đặt tham số "private_key" thành đường dẫn đến tệp . Khi pySFTP bắt đầu kết nối, nó sẽ cố gắng sử dụng tệp bạn đã chuyển vào.

Làm cách nào để gửi tệp tới SFTP bằng Python?

Truyền tệp qua SFTP .
ssh_transport = thông số. Vận chuyển [tên máy chủ, cổng] ssh_transport. kết nối [tên người dùng = 'tên người dùng', mật khẩu = 'mật khẩu'] Sao chép
sftp_session = tham số. Khách hàng SFTP. from_transport[ssh_transport] sftp_session. get[source_file, target_file] Sao chép

Làm cách nào để thay đổi thư mục trong SFTP bằng Python?

kết nối [tên người dùng = tên người dùng, mật khẩu = mật khẩu] sftp = paramiko. Khách hàng SFTP. from_transport[session] print[f'Connected to {hostname} - Remote Session Opened'] latest_time = -1 latest = Không # Vòng lặp bên dưới tìm thư mục con mới nhất cho file_attr trong sftp. listdir_attr[path=remote_path]. nếu thống kê

Chủ Đề