Tôi mới sử dụng JSch và java. Tôi quản lý để có được một số mã và hiểu nó bằng cách nào đó, nhưng tôi bị mắc kẹt trên một điểm. Mã sau đây tải tập tin từ máy chủ SSH, nhưng tôi đang cần đồng hồ đo tiến độ cho thấy tỷ lệ phần trăm của tập tin sao chép. Tôi làm nó như thế nào. Tôi sẽ đánh giá cao sự giúp đỡ của bạn.Quá trình tải lên/tải xuống JSch sftp
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpProgressMonitor;
public class SFTPExample {
public static void main(String args[]) throws Exception {
String user = "root";
String password = "password";
String host = "192.168.0.5";
int port = 22;
String knownHostsFilename = "/home/world/.ssh/known_hosts";
String sourcePath = "/media/nfs/genotype.txt";
String destPath = "genotype.txt";
JSch jsch = new JSch();
jsch.setKnownHosts(knownHostsFilename);
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.connect();
ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
sftpChannel.connect();
System.out.println("Downloading test file");
sftpChannel.get(sourcePath, destPath);
sftpChannel.exit();
session.disconnect();
}
}
thanx fo câu trả lời .. Nếu tôi tải tập tin của 100MB tại thời điểm đó giá trị byte của tôi là: 32755 như ,, vì vậy bạn sẽ giải thích cho tôi tại sao tôi nhận được giá trị này .. – NovusMobile
Bạn có thể nhận được kích thước của tổng số dữ liệu được chuyển bằng cách tích lũy giá trị đã cho. – ymnk
Liên kết này dường như không hoạt động nữa – Hiran