winserver文件备份到minio
-
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();
*/
}
}

浙公网安备 33010602011771号