Kết nối SFTP server sử dụng JSch

JSch là một thư viện Java hiện thực SSH2 protocol, giúp chúng ta có thể kết nối và thao tác với các tập tin trên một SFTP server. Trong bài viết này, mình sẽ hướng dẫn các bạn cách để kết nối tới một SFTP server sử dụng thư viện này các bạn nhé!

Đầu tiên, mình sẽ tạo một Maven project để làm ví dụ:

Kết nối SFTP server sử dụng JSch

Jsch dependency như sau:

Để kết nối tới một SFTP server, trước tiên chúng ta cần khởi tạo một đối tượng JSch:

Bất kỳ một kết nối nào giữa client và server đều cần thiết có một phiên làm việc hay còn gọi là Session. Chúng ta có thể tạo Session cho kết nối của chúng ta từ đối tượng JSch mà chúng ta vừa khởi tạo:

Trong đó:

  • login là tên của người dùng SFTP.
  • hostname là địa chỉ của server SFTP.
  • password là mật khẩu của người dùng SFTP.

Bây giờ nếu bạn chạy đoạn code trên, bạn sẽ gặp lỗi sau:

Lý do là đối với kết nối SSH chúng ta cần phải xác nhận server mà chúng ta kết nối là an toàn. Để bỏ qua thao tác xác nhận này, chúng ta có thể sửa cấu hình mặc định của một Session.

Chạy lại các bạn sẽ không gặp lỗi trên nữa.

Bây giờ từ đối tượng Session này, chúng ta có thể mở một channel SFTP để thao tác với các tập tin trên server SFTP.

Mặc định, khi mở một ChannelSftp, thư mục mặc định là thư mục người dùng.

Chúng ta có thể lấy thư mục hiện hành bằng cách gọi:

Toàn bộ code như sau:

Add Comment