SFTP là một giao thức tiêu chuẩn và an toàn thông qua đó các bên có thể chuyển và chia sẻ dữ liệu và tệp một cách an toàn. Trong mọi trường hợp, việc tương tác với máy chủ SFTP theo chương trình có thể là một thách thức. Trong bài đăng sau, chúng tôi sẽ xây dựng một ứng dụng khách SFTP dựa trên PHP chính thức, từng bước một, để khi kết thúc hướng dẫn, bạn sẽ có thể tự mình thực hiện tất cả
Yêu cầu
Trước hết, bạn sẽ cần một máy chủ SFTP để kết nối với. Nếu chưa có, bạn có thể nhận điểm cuối SFTP trên SFTP To Go trong chưa đầy 30 giây
PHP không đi kèm với các thư viện SFTP ngay từ đầu, vì vậy chúng tôi sẽ cần cài đặt thư viện ssh2 cần thiết bằng PECL. Thư viện dựa trên libssh2, vì vậy bạn phải đảm bảo rằng nó được cài đặt lần đầu tiên trên máy của bạn. Ví dụ: trên máy Ubuntu, hãy chạy như sau
$ apt-get install libssh2-1-dev
$ pecl install -a ssh2-1.3
Theo phương pháp phát triển đám mây ứng dụng 12 yếu tố, bạn nên xác định rõ ràng các phụ thuộc của ứng dụng, điều này sẽ giúp trình soạn thảo của chúng tôi. tệp json trông như thế này
{
"require": {
"ext-ssh2": "*"
}
}
Bây giờ niềm vui thực sự bắt đầu
Tạo và hủy kết nối SFTP
Chúng tôi sẽ bắt đầu bằng cách tạo một lớp mới gói gọn chức năng cần thiết cho ứng dụng khách SFTP của chúng tôi. Các phương thức công khai mà chúng tôi thêm lần đầu tiên cho phép chúng tôi kết nối với máy chủ bằng xác thực mật khẩu hoặc xác thực khóa và cung cấp phương tiện để ngắt kết nối phiên hiện có
lớp kết nối
. phpĐể đưa các phương thức hoàn toàn mới vào sử dụng, chúng ta sẽ thêm một hàm chính khởi tạo lớp của chúng ta và gọi hàm
{
"require": {
"ext-ssh2": "*"
}
}
8 để bắt đầu kết nối, cũng như đóng kết nối bằng hàm {
"require": {
"ext-ssh2": "*"
}
}
0 ngay sau đó. Chúng tôi sẽ sử dụng biến môi trường {
"require": {
"ext-ssh2": "*"
}
}
1 để lấy tất cả thông tin cần thiết để kết nối với máy chủ SFTP ở định dạng URI. {
"require": {
"ext-ssh2": "*"
}
}
2. Trong chức năng chính của chúng tôi, biến được phân tích cú pháp để trích xuất tên người dùng, mật khẩu, máy chủ và cổng tùy chọn
kết nối-chính. phpLiệt kê tập tin
Bây giờ chúng ta đã thiết lập kết nối thành công, chúng ta có thể thêm một chức năng vào lớp của mình và sử dụng nó để liệt kê các tệp trên máy chủ SFTP từ xa. Hàm
{
"require": {
"ext-ssh2": "*"
}
}
3 nhận đối số {
"require": {
"ext-ssh2": "*"
}
}
4 và trả về một mảng tên tệp, cùng với kích thước và dấu thời gian sửa đổi của chúng. Để gọi hàm, chỉ cần chuyển một đường dẫn [bạn có thể bắt đầu bằng {
"require": {
"ext-ssh2": "*"
}
}
5 để duyệt qua nội dung thư mục hiện tại] rồi xử lý mảng bạn nhận được{
"require": {
"ext-ssh2": "*"
}
}
0tệp danh sách. phpCập nhật dử liệu
Bây giờ là lúc để tải lên một tập tin. Sử dụng hàm
{
"require": {
"ext-ssh2": "*"
}
}
6 và truyền hai đối số. đường dẫn đến tệp cục bộ để tải lên và đường dẫn từ xa đích. Một cuộc gọi chức năng sẽ trông như thế này. {
"require": {
"ext-ssh2": "*"
}
}
7{
"require": {
"ext-ssh2": "*"
}
}
3tải lên tập tin. phpTải tập tin
Cuối cùng nhưng không kém phần quan trọng. Sử dụng chức năng
{
"require": {
"ext-ssh2": "*"
}
}
8 để tải xuống tệp. Truyền đường dẫn đến tệp từ xa và đường dẫn cục bộ trong đó tệp đã tải xuống sẽ được lưu trữ cho chức năng. Bạn sẽ gọi hàm như thế này. {
"require": {
"ext-ssh2": "*"
}
}
9{
"require": {
"ext-ssh2": "*"
}
}
6tệp tải xuống. phpSFTP 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ô
toàn bộ điều
Đó là nó. 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
0