minio安装与使用 2022
- 时间:2022-06-27
- 浏览:
3.1、 windows安装非常简单
官网直接下载:
启动就这么简单, F:Data 就是文件存储的目录
3.3、java调用minio
在官方上有相应的demo,不过官网引用的版本比较旧,相应的demo也比较旧,最新的demo我们可以去github上看。
githug examples:
以下代码基于官方github微调后的示例
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.0.3</version>
</dependency>
class MinioTest {
MinioClient minioClient;
@BeforeEach
void setUp() {
minioClient =
MinioClient.builder()
.endpoint("https://play.min.io")
.credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")
.build();
}
/**
* 上传文件
*
* @throws Exception
*/
@Test
void test_upload() throws Exception {
minioClient.uploadObject(
UploadObjectArgs.builder()
.bucket("bucket01")
.object("test.txt")
.filename("D:\data\Desktop\test.txt")
.build());
System.out.println("my-filename is uploaded to my-objectname successfully");
}
/**
* 下载文件
*
* @throws Exception
*/
@Test
void test_download() throws Exception {
minioClient.downloadObject(
DownloadObjectArgs.builder()
.bucket("bucket01")
.object("test.txt")
.filename("D:\data\Desktop\test.txt")
.build());
System.out.println("my-filename is uploaded to my-objectname successfully");
}
/**
* 获取文件URL
*
* @throws Exception
*/
@Test
void test_geturl() throws Exception {
String url =
minioClient.getPresignedObjectUrl(
GetPresignedObjectUrlArgs.builder()
.method(Method.GET)
.bucket("bucket01")
.object("test.txt")
.expiry(60 * 60 * 24)
.build());
System.out.println(url);
}
/**
* 上传+加密
*
* @throws Exception
*/
@Test
void test_upload_sse() throws Exception {
KeyGenerator keyGen = KeyGenerator.getInstance("AES");
keyGen.init(256);
ServerSideEncryptionCustomerKey ssec =
new ServerSideEncryptionCustomerKey(keyGen.generateKey());
minioClient.uploadObject(
UploadObjectArgs.builder()
.bucket("bucket01")
.object("test-sse-01.txt")
.filename("D:\data\Desktop\test.txt")
.sse(ssec)
.build());
System.out.println("my-filename is uploaded to my-objectname successfully");
}
/**
* 下载+解密
*
* @throws Exception
*/
@Test
void test_download_sse() throws Exception {
KeyGenerator keyGen = KeyGenerator.getInstance("AES");
keyGen.init(256);
ServerSideEncryptionCustomerKey ssec =
new ServerSideEncryptionCustomerKey(keyGen.generateKey());
minioClient.downloadObject(
DownloadObjectArgs.builder()
.bucket("bucket01")
.object("test-sse-01.txt")
.filename("D:\data\Desktop\_test-sse-01.txt")
.ssec(ssec) // Replace with same SSE-C used at the time of upload.
.build());
System.out.println("my-objectname is successfully downloaded to my-filename");
}
/**
* 如何保存上传时的密钥对象
*
* @throws Exception
*/
@Test
void test_key() throws Exception {
KeyGenerator keyGen = KeyGenerator.getInstance("AES");
keyGen.init(256);
SecretKey key1 = keyGen.generateKey();
byte[] keySave = key1.getEncoded();
System.out.println("key1 = " + Base64.getEncoder().encodeToString(keyBytes));
//这里把keySave 保存下来就可以了,当然我们可以转成base64保存
//以下就是把存储下来的keySave还原成SecretKey对象
SecretKey key2 = new SecretKeySpec(keySave , "AES");
System.out.println("key2 = " + Base64.getEncoder().encodeToString(key2 .getEncoded()));
//key1 == key2
assertEquals(key1,key2);
}
}
评论列表(条)