Jay
8 天以前 eca625c35d5ed64c98277d2f83963e46438f50ce
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.infra.framework.file.core.s3;
H 2
3 import cn.hutool.core.io.resource.ResourceUtil;
4 import cn.hutool.core.util.IdUtil;
5 import com.iailab.framework.common.util.validation.ValidationUtils;
6 import com.iailab.module.infra.framework.file.core.client.s3.S3FileClient;
7 import com.iailab.module.infra.framework.file.core.client.s3.S3FileClientConfig;
8 import org.junit.jupiter.api.Disabled;
9 import org.junit.jupiter.api.Test;
10
11 import javax.validation.Validation;
12
13 public class S3FileClientTest {
14
15     @Test
16     @Disabled // MinIO,如果要集成测试,可以注释本行
17     public void testMinIO() throws Exception {
18         S3FileClientConfig config = new S3FileClientConfig();
19         // 配置成你自己的
20         config.setAccessKey("admin");
21         config.setAccessSecret("password");
22         config.setBucket("iailabyuanma");
23         config.setDomain(null);
24         // 默认 9000 endpoint
25         config.setEndpoint("http://127.0.0.1:9000");
26
27         // 执行上传
28         testExecuteUpload(config);
29     }
30
31     @Test
32     @Disabled // 阿里云 OSS,如果要集成测试,可以注释本行
33     public void testAliyun() throws Exception {
34         S3FileClientConfig config = new S3FileClientConfig();
35         // 配置成你自己的
36         config.setAccessKey(System.getenv("ALIYUN_ACCESS_KEY"));
37         config.setAccessSecret(System.getenv("ALIYUN_SECRET_KEY"));
38         config.setBucket("yunai-aoteman");
39         config.setDomain(null); // 如果有自定义域名,则可以设置。http://ali-oss.iocoder.cn
40         // 默认北京的 endpoint
41         config.setEndpoint("oss-cn-beijing.aliyuncs.com");
42
43         // 执行上传
44         testExecuteUpload(config);
45     }
46
47     @Test
48     @Disabled // 腾讯云 COS,如果要集成测试,可以注释本行
49     public void testQCloud() throws Exception {
50         S3FileClientConfig config = new S3FileClientConfig();
51         // 配置成你自己的
52         config.setAccessKey(System.getenv("QCLOUD_ACCESS_KEY"));
53         config.setAccessSecret(System.getenv("QCLOUD_SECRET_KEY"));
54         config.setBucket("aoteman-1255880240");
55         config.setDomain(null); // 如果有自定义域名,则可以设置。http://tengxun-oss.iocoder.cn
56         // 默认上海的 endpoint
57         config.setEndpoint("cos.ap-shanghai.myqcloud.com");
58
59         // 执行上传
60         testExecuteUpload(config);
61     }
62
63     @Test
64     @Disabled // 七牛云存储,如果要集成测试,可以注释本行
65     public void testQiniu() throws Exception {
66         S3FileClientConfig config = new S3FileClientConfig();
67         // 配置成你自己的
68 //        config.setAccessKey(System.getenv("QINIU_ACCESS_KEY"));
69 //        config.setAccessSecret(System.getenv("QINIU_SECRET_KEY"));
70         config.setAccessKey("b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8");
71         config.setAccessSecret("kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP");
72         config.setBucket("ruoyi-vue-pro");
73         config.setDomain("http://test.iailab.iocoder.cn"); // 如果有自定义域名,则可以设置。http://static.iailab.iocoder.cn
74         // 默认上海的 endpoint
75         config.setEndpoint("s3-cn-south-1.qiniucs.com");
76
77         // 执行上传
78         testExecuteUpload(config);
79     }
80
81     @Test
82     @Disabled // 华为云存储,如果要集成测试,可以注释本行
83     public void testHuaweiCloud() throws Exception {
84         S3FileClientConfig config = new S3FileClientConfig();
85         // 配置成你自己的
86 //        config.setAccessKey(System.getenv("HUAWEI_CLOUD_ACCESS_KEY"));
87 //        config.setAccessSecret(System.getenv("HUAWEI_CLOUD_SECRET_KEY"));
88         config.setBucket("iailab");
89         config.setDomain(null); // 如果有自定义域名,则可以设置。
90         // 默认上海的 endpoint
91         config.setEndpoint("obs.cn-east-3.myhuaweicloud.com");
92
93         // 执行上传
94         testExecuteUpload(config);
95     }
96
97     private void testExecuteUpload(S3FileClientConfig config) throws Exception {
98         // 校验配置
99         ValidationUtils.validate(Validation.buildDefaultValidatorFactory().getValidator(), config);
100         // 创建 Client
101         S3FileClient client = new S3FileClient(0L, config);
102         client.init();
103         // 上传文件
104         String path = IdUtil.fastSimpleUUID() + ".jpg";
105         byte[] content = ResourceUtil.readBytes("file/erweima.jpg");
106         String fullPath = client.upload(content, path, "image/jpeg");
107         System.out.println("访问地址:" + fullPath);
108         // 读取文件
109         if (true) {
110             byte[] bytes = client.getContent(path);
111             System.out.println("文件内容:" + bytes.length);
112         }
113         // 删除文件
114         if (false) {
115             client.delete(path);
116         }
117     }
118
119 }