winserver文件备份到minio

  1. winserver开启 WSMan
    PS C:\Users\Administrator> Enable-PSRemoting -Force
    PS C:\Users\Administrator> Set-Item WSMan:\localhost\Client\TrustedHosts -Value "192.168.,17.1.0." -Force
    PS C:\Users\Administrator> netsh advfirewall firewall add rule name="WinRM-HTTP" dir=in localport=5985 protocol=TCP action=allow

  2. pom


4.0.0

o.h
ywyt
1.0

<artifactId>ywyt-minio</artifactId>

<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<repositories>
    <!-- 先用官方中央仓库 -->
    <repository>
        <id>central</id>
        <url>https://repo.maven.apache.org/maven2</url>
    </repository>

    <!--        <repository>-->
    <!--            <id>cloudsoft-releases</id>-->
    <!--            <url>https://repository.cloudsoft.io/content/repositories/releases/</url>-->
    <!--        </repository>-->

</repositories>

<dependencies>

    <!-- https://mvnrepository.com/artifact/io.cloudsoft.windows/winrm4j -->
    <dependency>
        <groupId>io.cloudsoft.windows</groupId>
        <artifactId>winrm4j</artifactId>
        <version>0.12.3</version>
    </dependency>

<!-- MinIO SDK -->
<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>8.5.10</version>
</dependency>

</dependencies>
  1. code
    package org.hf.ywyt_minio.demo;

import io.cloudsoft.winrm4j.client.WinRmClient;
import io.cloudsoft.winrm4j.winrm.WinRmTool;
import io.cloudsoft.winrm4j.winrm.WinRmToolResponse;
import io.minio.;
import io.minio.errors.
;
import io.minio.messages.Bucket;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;

// 备份winserver关键文件到minio
public class t1 {

/* ========== 2. 上传到 MinIO ========== */
private static String endPoint  = "http://12.16.10.12:9000";
private static String accessKey = "HOscV0otja4iTy";
private static String secretKey = "7gJF4QfSKEmzHzQuCHhRWg5aWFP1Q";
private static String bucket    = "test1";
private static String objectKey = "t1.txt";

public static void main(String[] args) throws Exception {

    String winIp      = "19.68.10.2";
    String winUser    = "adtor";
    String winPwd     = "t";
    String remoteFile = "d:\\ft\\t1.txt";          // WinServer 上的文件

    WinRmTool tool = WinRmTool.Builder.builder(
            "http://" + winIp + ":5985/wsman",   // endpoint
            "",
            winUser,
            winPwd)
            .build();

    String psCmd = String.format(
            "$b=[System.IO.File]::ReadAllBytes('%s'); [Convert]::ToBase64String($b)",
            "d:\\a.txt");

    WinRmToolResponse resp = tool.executePs(psCmd);
    String base64 = resp.getStdOut().trim();
    byte[] data = Base64.getDecoder().decode(base64);

    //System.out.println(data.toString());

    MinioClient minio = MinioClient.builder()
            .endpoint(endPoint)
            .credentials(accessKey, secretKey)
            .build();

    boolean found = minio.bucketExists(BucketExistsArgs.builder().bucket(bucket).build());
    if (!found) {
        minio.makeBucket(MakeBucketArgs.builder().bucket(bucket).build());
    }

    minio.putObject(
            PutObjectArgs.builder()
                    .bucket(bucket)
                    .object(objectKey)
                    .stream(new ByteArrayInputStream(data), data.length, -1)
                    .contentType("text/plain")          // 按实际文件类型改
                    .build());
    System.out.println("上传完成 → " + bucket + "/" + objectKey);
    minio.close();


    /* 上传本地文件
    MinioClient minio = MinioClient.builder()
            .endpoint(endPoint)
            .credentials(accessKey, secretKey)
            .build();

    System.out.println(minio);

    if (minio.bucketExists(BucketExistsArgs.builder().bucket(bucket).build())) {
        System.out.println(bucket+"已存在");
    } else {
            minio.makeBucket(MakeBucketArgs.builder().bucket(bucket).build());
    }


    minio.uploadObject(
            UploadObjectArgs.builder()
                    .bucket(bucket)
                    .object(objectKey)
                    .filename("C:\\Users\\Administrator\\Desktop\\a1.html")
                    .contentType("text/html")
                    .build()
    );

    System.out.println("上传完成 → " + bucket + "/" + objectKey);
    minio.close();

    */


}

}

posted @ 2025-10-17 08:48  自在现实  阅读(3)  评论(0)    收藏  举报