在MinIO Java SDK中,getPresignedObjectUrl
方法现在接受一个 GetPresignedObjectUrlArgs
对象作为参数,这个对象允许你更加灵活地配置生成预签名URL的行为。以下是使用这个方法的一个示例:
首先,确保你已经添加了MinIO Java SDK依赖到你的项目中,并且初始化了MinioClient
实例。
import io.minio.MinioClient;
import io.minio.errors.MinioException;
import io.minio.http.Method;
import io.minio.presignedurl.GetPresignedObjectUrlArgs;
import java.net.URL;
import java.time.Duration;
import java.util.concurrent.TimeUnit;
public class PresignedUrlExample {
public static void main(String[] args) {
try {
// 初始化MinioClient实例
MinioClient minioClient = MinioClient.builder()
.endpoint("https://your-minio-endpoint")
.credentials("your-access-key", "your-secret-key")
.build();
// 定义GetPresignedObjectUrlArgs参数
GetPresignedObjectUrlArgs.Builder builder = GetPresignedObjectUrlArgs.builder()
.bucket("your-bucket-name")
.object("your-object-path")
// 可选: 设置HTTP方法,默认为GET
.method(Method.GET)
// 设置URL过期时间,这里是1小时
.expiry(1, TimeUnit.HOURS);
// 生成预签名URL
URL presignedUrl = minioClient.getPresignedObjectUrl(builder.build());
// 打印预签名URL
System.out.println("Pre-signed URL: " + presignedUrl.toString());
} catch (Exception e) {
System.out.println("Error generating pre-signed URL: " + e.getMessage());
}
}
}
在这个示例中,我们创建了一个GetPresignedObjectUrlArgs.Builder
来配置生成预签名URL的参数。我们指定了存储桶名称(your-bucket-name
)、对象路径(your-object-path
)以及URL的有效期为1小时。默认的HTTP方法是GET
,但如果你有特殊需求,也可以通过.method(Method)
方法来改变。
请确保将 "https://your-minio-endpoint"
, "your-access-key"
, "your-secret-key"
, "your-bucket-name"
, 和 "your-object-path"
替换为你的实际MinIO服务器地址、凭证和目标对象的信息。