0

Java を使用してリモート サーバーにアクセスし、ファイルにアクセスしてファイルを更新したり、サーバー上のファイルを更新したりしたいと考えていました。

ユーザー名@ホストとパスワードを使用してリモートサーバーにアクセスし、ファイルをアップロードおよびダウンロードできる簡単な方法はありますか?

ありがとう

4

3 に答える 3

0

ジョブに適切なツールを使用してください: rsync

于 2012-09-05T16:08:39.043 に答える
0

JSchを使用して、リモートで ssh 経由でファイルにアクセスできます。

于 2012-09-05T16:07:44.803 に答える
0

ssh 接続を開きながらマシンに接続したい場合は、OS コマンドを実行するために trilead を使用できます。これは、接続を開くメソッドの例です。

    public static Connection newConnectionNoPassword(String host, String username, File privateKey) {
    Connection newConn = new Connection(host);
    try {
        newConn.connect(); // Ignoring ConnectionInfo returned value.
        //If the authentication was successful the authenticated connection will be returend
        if ( newConn.authenticateWithPublicKey(username, privateKey, null)){
            return newConn;
        }else{
            newConn.close();
            return null;
        }
    } catch (IOException ioe) {
        newConn.close();
        ioe.printStackTrace();
        return null;
    }
}

Maven を使用している場合は、次の依存関係を pom.xml に追加することで取得できます。

    <dependency>
        <groupId>com.trilead</groupId>
        <artifactId>trilead-ssh2</artifactId>
        <version>build213-svnkit-1.3-patch</version>
    </dependency>

サーバーにファイルをアップロード/ダウンロードするには、trilead SCPClient を使用できます。リモート サーバーからローカル フォルダーにファイルをダウンロードする例を次に示します。

    public void downloadFiles(String[] remoteFiles, String localDir) throws IllegalArgumentException, IOException {
    checkNotEmpty(localDir);
    checkNotEmpty(remoteFiles);

    File dir = new File(localDir);
    if (!dir.exists() || !dir.mkdirs()) {
        throw new IOException("Failed to create local directory : " + localDir);
    }

    SCPClient scp = new SCPClient(this.conn);
    try {
        scp.get(remoteFiles, localDir);
    } catch (IOException e) {
        throw new IOException("Failed to copy remote files to local folder", e);
    }
}

それが役に立てば幸い..

于 2012-09-11T07:41:21.133 に答える