어떻게 Android 에서 scp 작업 을 실현 합 니까?

4335 단어 Androidscp
본 고 는 SSH 라 이브 러 리 ganymed-ssh 2 로 Android 에서 scp 작업 을 실현 하 는 것 을 간단하게 소개 한다.
SSH
SSH 는 원 격 로그 인 세 션 과 다른 네트워크 서비스 에 안전성 을 제공 하 는 프로 토 콜 로 쉽게 말 하면 네트워크 프로 토 콜 이다.Liux 의 표준 설정 입 니 다.Liux 장치 간 통신 에 사용 합 니 다.
SCP
SCP 는 SSH 를 기반 으로 파일 암호 화 복 사 를 완료 하 는 프로 토 콜 이다.SSH 를 사용 하여 신분 인증 을 하여 데이터 전송의 진실성 과 신뢰성 을 확보 하 다.
SCP 기본 값 은 TCP 포트 22 를 통 해 실 행 됩 니 다.
SCP 프로그램 상용 문법:

//        
scp SourceFile user@host:directory/TargetFile


//        
scp user@host:directory/SourceFile TargetFile
scp -r user@host:directory/SourceFolder TargetFolder

//        
scp user@host:directory/SourceFile TargetFile
scp -r user@host:directory/SourceFolder TargetFolder
SFTP
SFTP 도 SSH 보안 파일 전송 프로 토 콜 기반 이다.FTP 기반 과 달리 FTP 는 Tcp 기반 으로 사용자 정 보 를 명문 으로 전송 합 니 다.안전성 이 비교적 떨어진다.
Android 에서 SCP 사용
가 니 메 드-ssh 2 jar 패키지 다운로드

<!-- https://mvnrepository.com/artifact/ch.ethz.ganymed/ganymed-ssh2 -->
<dependency>
  <groupId>ch.ethz.ganymed</groupId>
  <artifactId>ganymed-ssh2</artifactId>
  <version>build210</version>
</dependency>
공식 다운로드 주소

public class Scp {

  private volatile static Scp scpInstance;

  private String user;
  private String pass;
  private String host;
  private Connection connection;
  private SCPClient scpClient;
  private Boolean isAuthed;

  private Scp(String user, String pass, String host){
    this.user = user;
    this.pass = pass;
    this.host = host;
  }

  public static Scp getScpUtilsInstance(String user, String pass, String host){

    if(scpInstance == null) {
      synchronized(Scp.class) {
        if(scpInstance == null) {
          scpInstance = new Scp(user,pass,host);
        }
      }
    }
    return scpInstance;
  }


  public void connect(){
    connection = new Connection(host);
    try {
      connection.connect();
      isAuthed = connection.authenticateWithPassword(user,pass);
      // scp   
      scpClient = connection.createSCPClient();
    } catch (IOException e) {
      e.printStackTrace();
      close();
    }
  }

  public void close(){
    connection.close();
    sftPv3Client.close();
  }

  public boolean getIsAuthed(){
    return isAuthed;
  }

  //         
  public void putFile(String filePath,String aimPath){
    try {
      if(scpClient != null){
        scpClient.put(filePath,aimPath);
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

 

}

Scp scp = Scp.getScpUtilsInstance("root","psd","192.168.199.3");
              scp.connect();
              if(scp.getIsAuthed()){
                for(int i = 0;i<data.getLayers();i++){
                  scp.putFile(SlcParser.pngDirectory+"/"+i+".png","/home");
                }
              }

SFTP 파일 삭제

  private SFTPv3Client sftPv3Client;
  
  sftPv3Client = new SFTPv3Client(connection);

  public void rmFile(String filePath){
      try {
        if(sftPv3Client != null){
          sftPv3Client.rm(filePath);
        }
      } catch (IOException e) {
        e.printStackTrace();
      }
    }


Scp scp = Scp.getScpUtilsInstance("root","psd","192.168.199.3");
        scp.connect();
        if(scp.getIsAuthed()){
          for(int i = 0;i<10;i++){
            scp.rmFile("/home/"+i+".png");
          }
        }

이상 은 어떻게 안 드 로 이 드 에서 scp 작업 을 실현 하 는 지 에 대한 상세 한 내용 입 니 다.안 드 로 이 드 에서 scp 작업 을 실현 하 는 지 에 관 한 자 료 는 다른 관련 글 에 주목 하 세 요!

좋은 웹페이지 즐겨찾기