minio私有桶授权访问
<dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.7</version> <!-- 使用最新版本 --></dependency>
MinioConfig:
package com.zy.datapickcli;import io.minio.MinioClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class MinioConfig {@Value("${minio.endpoint}")private String endpoint;@Value("${minio.access-key}")private String accessKey;@Value("${minio.secret-key}")private String secretKey;@Bean // 确保方法返回 MinioClient 并添加 @Beanpublic MinioClient minioClient() {return MinioClient.builder().endpoint(endpoint).credentials(accessKey, secretKey).build();}
}
FileController:
package com.zy.datapickcli;import io.minio.GetPresignedObjectUrlArgs;
import io.minio.MinioClient;
import io.minio.http.Method;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.concurrent.TimeUnit;@RestController
public class FileController {@Autowiredprivate MinioClient minioClient;@GetMapping("/presigned-url")public String getPresignedUrl() throws Exception {return generatePresignedUrl("kjwl", "20231008135220.png");}public String generatePresignedUrl(String bucketName, String objectName) throws Exception {return minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder().method(Method.GET).bucket(bucketName).object(objectName).expiry(1, TimeUnit.HOURS).build());}
}
yml:
minio:endpoint: http://127.0.0.1:9000access-key: xxxsecret-key: xxx
访问测试: