要生成AWS Java SDK 2.0 S3的预签名URL以允许公共对象访问,您可以按照以下步骤进行操作:
software.amazon.awssdk
s3
import software.amazon.awssdk.auth.signer.S3Presigner;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.GetUrlRequest;
import software.amazon.awssdk.services.s3.model.GetUrlResponse;
Region region = Region.US_EAST_1; // 替换为您使用的区域
S3Client s3Client = S3Client.builder().region(region).build();
S3Presigner presigner = S3Presigner.builder().region(region).build();
String bucketName = "your-bucket-name"; // 替换为您的存储桶名称
String objectKey = "your-object-key"; // 替换为您的对象键
GetUrlRequest getUrlRequest = GetUrlRequest.builder()
.bucket(bucketName)
.key(objectKey)
.build();
GetUrlResponse getUrlResponse = presigner.presignGetUrl(getUrlRequest);
String presignedUrl = getUrlResponse.url().toString();
System.out.println("Presigned URL: " + presignedUrl);
在上述代码中,您需要将your-bucket-name
替换为您的存储桶名称,将your-object-key
替换为您要访问的对象的键。
presignedUrl
变量中,您可以使用它来访问公共对象。注意:生成的预签名URL将具有一定的有效期限制,您可以通过修改GetUrlRequest
对象中的expiration
属性来调整有效期。此外,还可以根据需要使用其他方法生成预签名URL,例如presignPutUrl()
方法用于生成预签名的PUT URL。
这是一个简单的示例,演示了如何生成AWS Java SDK 2.0 S3的预签名URL以允许公共对象访问。您可以根据您的特定需求进行调整和扩展。