业务逻辑:前端通过基础业务代码(有登陆验证等有Minio服务的永久凭证)获取Minio服务临时凭证,获取到临时凭证后使用临时凭证直接访问Minio服务,此用意在于不暴露永久凭证到前端,使得前端可以直接使用Minio服务
一: 前端获取临时credentials
String policy = """
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::test*"
]
}
]
}
""";
//durationSeconds表示多久过期,默认3600秒,如果是小于3600,会被设置成默认值。
AssumeRoleProvider provider = new AssumeRoleProvider(
endpoint, accessKey, secretKey, 3600, policy
, null, null, "roleSessionName", null, null
);
//获取credentials,此中包含accessKey,secretKey,sessionToken可用于后续接口使用
Credentials credentials = provider.fetch();