Làm cách nào để chuyển tệp bằng ftp trong python?

Vì python có bộ thư viện phong phú để thực hiện tự động hóa tác vụ khi truyền tệp qua máy chủ FTP nên có nhiều thư viện có sẵn trong python như ftplib, ftputil, paramiko, fabric, v.v.

Trong bài viết này, tôi sẽ giải thích cách bạn có thể sử dụng thư viện ftplib python để truyền tệp qua máy chủ FTP

 

Sử dụng thư viện ftplib, bạn có thể thực hiện tự động hóa nhiều công việc FTP, Bạn có thể kết nối liền mạch với máy chủ FTP để truy xuất tệp và thao tác cục bộ với chúng

 

Tìm kiếm một
Công ty Odoo có kinh nghiệm?
Đọc thêm

from ftplib import FTP
ftp_obj = FTP[]

serveruri='192.168.1.199'
serverport='21'
ftp.connect[serveruri, serverport]

serveruser='ftp-test'
serverpassword='ftp-test12#'
ftp_obj.login[user = serveruser, passwd = serverpassword]

ftp_obj.retrlines['LIST'] # list directory contents
#########################################

Phương thức FTP

==>FTP. kết nối [máy chủ [, cổng [, thời gian chờ]]]

Điều này sử dụng để thiết lập kết nối với máy chủ và cổng đã cho

Trong trường hợp không có cổng nào được cung cấp thì số cổng mặc định là 21 sẽ được sử dụng theo thông số kỹ thuật của giao thức FTP

 

==>FTP. chào đón[]

Điều này được sử dụng để nhận thông báo chào mừng được gửi bởi máy chủ

 

==>FTP. cwd[tên đường dẫn]

Để thay đổi thư mục bằng cwd

Giống

serverdirectorypath='/files'
ftp_obj.cwd[serverdirectorypath]

 

==>FTP. retrbinary[lệnh, gọi lại [, maxblocksize [, phần còn lại]]]

Điều này sử dụng để truy xuất tệp ở dạng chế độ truyền nhị phân.
Thích.

ftp.retrbinary['RETR %s'%serverfilepath, open[localfilepath, 'wb'].write]

 

==>FTP. storbinary[lệnh, fp[, kích thước khối, gọi lại, phần còn lại]]

Điều này sử dụng để tải dữ liệu lên máy chủ

ftp_obj.storbinary['STOR %s'%serverfilepath, = open[localfilepath, 'rb']]

 

==>FTP. retrlines[lệnh[, gọi lại]]

Giống

ftp_obj.retrlines['LIST']

Để truy xuất danh sách dữ liệu tệp hoặc thư mục

 

==>FTP. xóa [tên tệp]

ftp_obj.delete[serverfilepath]

Để xóa tệp [tên tệp] khỏi máy chủ

 

==>FTP. mkd[tên đường dẫn]

Để tạo một thư mục mới trên đường dẫn đã cho [tên đường dẫn]

ftp_obj.mkd[serverdirectorypath]

 

Để biết thêm chi tiết, vui lòng xem tài liệu chính thức về python

Đó là tất cả cho ngày hôm nay. Tôi hy vọng blog này sẽ giúp bạn. Tôi sẽ rất biết ơn nếu bạn viết ý kiến, nhận xét và đề xuất của mình để giữ cho trang được cập nhật và thú vị

FTP is a common protocol used by most sysadmins to copy files over a network to remote servers either for backup or for some other reason. Python có một mô-đun sẵn có để FTP hoạt động. Máy chủ FTP của Microsoft hoặc bất kỳ máy chủ FTP dựa trên Linux nào như VSFTP hoặc Pure-FTPD sẽ đủ cho hướng dẫn

#!/usr/bin/env python
import os
import ftplib
file_to_upload = /root/backup/home.tar.gz
server = '192.168.36.8'
username = 'test_account'
password = 'welcome123'
ftp_connection = ftplib.FTP[server, username, password]
remote_path = "/ftp/"
ftp_connection.cwd[remote_path]
fh = open[file_to_upload, 'rb']
ftp_connection.storbinary['STOR %s' % os.path.basename[file_to_upload], fh]
fh.close[]

Trước tiên, chúng tôi nhập các mô-đun ftplib và os

Sau đó, chúng tôi xác định các tham số máy chủ của mình, chẳng hạn như máy chủ chạy dịch vụ FTP, tên người dùng và mật khẩu

ftp_connection = ftplib. FTP [máy chủ, tên người dùng, mật khẩu] – Chúng tôi xác định kết nối ftp là một biến để giữ kết nối với máy chủ FTP của chúng tôi đang ngồi ở đâu đó

remote_path = “/ftp/” – Một biến cho Thư mục từ xa

ftp_connection. cwd[remote_path] – Sau khi kết nối thành công, chúng ta chuyển sang thư mục trên máy chủ từ xa

fh = open[file_to_upload, ‘rb’] – chúng ta khai báo một biến fh để giữ tệp mà chúng ta sẽ sao chép

ftp_connection. storbinary['STOR %s' %os. đường dẫn. basename[file_to_upload], fh] – Điều này thực sự sẽ sao chép tệp vào máy chủ bằng cách sử dụng tham số STOR khi chúng tôi đang lưu trữ. Hệ điều hành. đường dẫn. tên cơ sở đảm bảo phần cuối cùng của đường dẫn là tệp thực mà chúng tôi muốn sao chép được sao chép

FTP là viết tắt của Giao thức truyền tệp. Đó là cách để kết nối hai máy tính và truyền tệp an toàn giữa chúng. Hầu hết các doanh nghiệp sử dụng máy chủ FTP để chia sẻ và lưu trữ dữ liệu được chia sẻ một cách an toàn

Máy chủ FTP nhằm tạo điều kiện thuận lợi cho việc truyền tệp qua internet. Nếu bạn gửi tệp bằng FTP, tệp sẽ được tải lên hoặc tải xuống máy chủ FTP. Khi bạn tải tệp lên, tệp sẽ được chuyển từ máy tính cá nhân sang máy chủ. Khi bạn đang tải xuống tệp, tệp sẽ được chuyển từ máy chủ sang máy tính cá nhân của bạn

Một trong những tính năng chính của máy chủ FTP là khả năng lưu trữ và truy xuất tệp. Trong hướng dẫn này, bạn sẽ tìm hiểu cách tải xuống và tải tệp lên máy chủ FTP bằng Python

Chúng tôi sẽ sử dụng mô-đun ftplib tích hợp sẵn của Python, chúng tôi sẽ sử dụng máy chủ FTP thử nghiệm cho hướng dẫn này, nó được gọi là DLPTEST, dưới đây là các chi tiết chúng tôi cần thêm để kết nối với máy chủ này

nhập ftplib

FTP_HOST = “ftp. dlptest. com”

FTP_USER = “dlpuser@dlptest. com”

FTP_PASS = “SzMf7rTE4pCrf9dV286GuNe4N”

Mật khẩu có thể thay đổi theo thời gian, đảm bảo bạn truy cập trang web của họ để biết thông tin đăng nhập chính xác, kết nối với máy chủ này

# kết nối với máy chủ FTP

ftp = ftplib. FTP[FTP_HOST, FTP_USER, FTP_PASS]

# buộc mã hóa UTF-8

ftp. mã hóa = “utf-8”

Đang tải tệp lên

Để tải lên một tệp, chúng tôi sẽ cần sử dụng ftp. phương thức storbinary[], như hình bên dưới

________số 8

Chúng tôi đã mở tệp bằng chế độ “rb”, có nghĩa là chúng tôi đang đọc tệp cục bộ ở chế độ nhị phân

Sau đó, chúng tôi sử dụng lệnh STOR của FTP, lưu trữ tệp ở chế độ nhị phân, nó sẽ chuyển tệp đó trên một cổng mới. Lưu ý rằng tệp phải tồn tại trong thư mục làm việc cục bộ của bạn, nếu không tệp này sẽ không hoạt động

Máy chủ thử nghiệm này sẽ xóa tệp sau 30 phút, để đảm bảo tệp được tải lên thành công, chúng tôi cần liệt kê tất cả các tệp và thư mục bằng ftp. phương thức dir[]

# list current files & directories
ftp.dir[]

đầu ra

Tải tập tin

Bây giờ, hãy thử tải xuống lại cùng một tệp đó

serverdirectorypath='/files'
ftp_obj.cwd[serverdirectorypath]
0

Lần này, chúng tôi đang mở tệp cục bộ ở chế độ “wb”, vì chúng tôi sẽ ghi tệp từ máy chủ vào máy cục bộ

Chúng tôi đang sử dụng lệnh RETR để tải xuống một bản sao của tệp trên máy chủ, chúng tôi cung cấp tên tệp mà chúng tôi muốn tải xuống làm đối số đầu tiên cho lệnh và máy chủ sẽ gửi một bản sao của tệp cho chúng tôi

ftp. phương thức retrbinary[] lấy phương thức gọi khi lưu trữ tệp trên máy cục bộ làm đối số thứ hai

Chủ Đề