-
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 -
pom
<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>
- 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();*/}
}