Class DefaultS3Presigner
java.lang.Object
software.amazon.awssdk.services.s3.internal.signing.DefaultSdkPresigner
software.amazon.awssdk.services.s3.internal.signing.DefaultS3Presigner
- All Implemented Interfaces:
AutoCloseable,SdkPresigner,S3Presigner,SdkAutoCloseable
@SdkInternalApi
public final class DefaultS3Presigner
extends DefaultSdkPresigner
implements S3Presigner
The default implementation of the
S3Presigner interface.-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionstatic S3Presigner.Builderbuilder()Presign aAbortMultipartUploadRequestso that it can be executed at a later time without requiring additional signing or authentication.Presign aCompleteMultipartUploadRequestso that it can be executed at a later time without requiring additional signing or authentication.Presign aCreateMultipartUploadRequestso that it can be executed at a later time without requiring additional signing or authentication.Presign aDeleteObjectRequestso that it can be executed at a later time without requiring additional signing or authentication.presignGetObject(GetObjectPresignRequest request) Presign aGetObjectRequestso that it can be executed at a later time without requiring additional signing or authentication.Presign aHeadBucketRequestso that it can be executed at a later time without requiring additional signing or authentication.Presign aHeadObjectRequestso that it can be executed at a later time without requiring additional signing or authentication.presignPutObject(PutObjectPresignRequest request) Presign aPutObjectRequestso that it can be executed at a later time without requiring additional signing or authentication.Presign aUploadPartRequestso that it can be executed at a later time without requiring additional signing or authentication.Methods inherited from class software.amazon.awssdk.services.s3.internal.signing.DefaultSdkPresigner
closeMethods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface software.amazon.awssdk.services.s3.presigner.S3Presigner
presignAbortMultipartUpload, presignCompleteMultipartUpload, presignCreateMultipartUpload, presignDeleteObject, presignGetObject, presignHeadBucket, presignHeadObject, presignPutObject, presignUploadPartMethods inherited from interface software.amazon.awssdk.awscore.presigner.SdkPresigner
close
-
Method Details
-
builder
-
presignGetObject
Description copied from interface:S3PresignerPresign aGetObjectRequestso that it can be executed at a later time without requiring additional signing or authentication. Example UsageS3Presigner presigner = ...; // Create a GetObjectRequest to be pre-signed GetObjectRequest getObjectRequest = ...; // Create a GetObjectPresignRequest to specify the signature duration GetObjectPresignRequest getObjectPresignRequest = GetObjectPresignRequest.builder() .signatureDuration(Duration.ofMinutes(10)) .getObjectRequest(request) .build(); // Generate the presigned request PresignedGetObjectRequest presignedGetObjectRequest = presigner.presignGetObject(getObjectPresignRequest); if (presignedGetObjectRequest.isBrowserExecutable()) System.out.println("The pre-signed request can be executed using a web browser by " + "visiting the following URL: " + presignedGetObjectRequest.url()); else System.out.println("The pre-signed request has an HTTP method, headers or a payload " + "that prohibits it from being executed by a web browser. See the S3Presigner " + "class-level documentation for an example of how to execute this pre-signed " + "request from Java code.");- Specified by:
presignGetObjectin interfaceS3Presigner
-
presignHeadObject
Description copied from interface:S3PresignerPresign aHeadObjectRequestso that it can be executed at a later time without requiring additional signing or authentication. Example UsageS3Presigner presigner = ...; // Create a HeadObjectRequest to be pre-signed HeadObjectRequest headObjectRequest = HeadObjectRequest.builder() .bucket("my-bucket") .key("my-key") .build(); // Create a HeadObjectPresignRequest to specify the signature duration HeadObjectPresignRequest headObjectPresignRequest = HeadObjectPresignRequest.builder() .signatureDuration(Duration.ofMinutes(10)) .headObjectRequest(headObjectRequest) .build(); // Generate the presigned request PresignedHeadObjectRequest presignedHeadObjectRequest = presigner.presignHeadObject(headObjectPresignRequest); // The presigned URL can be used with an HTTP client to retrieve object metadata SdkHttpClient httpClient = ApacheHttpClient.builder().build(); HttpExecuteRequest request = HttpExecuteRequest.builder() .request(presignedHeadObjectRequest.httpRequest()) .build(); HttpExecuteResponse response = httpClient.prepareRequest(request).call(); // Extract metadata from response headers String contentLength = response.httpResponse().firstMatchingHeader("Content-Length").orElse("0");- Specified by:
presignHeadObjectin interfaceS3Presigner
-
presignHeadBucket
Description copied from interface:S3PresignerPresign aHeadBucketRequestso that it can be executed at a later time without requiring additional signing or authentication. Example UsageS3Presigner presigner = ...; // Create a HeadBucketRequest to be pre-signed HeadBucketRequest headBucketRequest = HeadBucketRequest.builder() .bucket("my-bucket") .build(); // Create a HeadBucketPresignRequest to specify the signature duration HeadBucketPresignRequest headBucketPresignRequest = HeadBucketPresignRequest.builder() .signatureDuration(Duration.ofMinutes(10)) .headBucketRequest(headBucketRequest) .build(); // Generate the presigned request PresignedHeadBucketRequest presignedHeadBucketRequest = presigner.presignHeadBucket(headBucketPresignRequest); // The presigned URL can be used with an HTTP client to check bucket existence and access SdkHttpClient httpClient = ApacheHttpClient.builder().build(); HttpExecuteRequest request = HttpExecuteRequest.builder() .request(presignedHeadBucketRequest.httpRequest()) .build(); HttpExecuteResponse response = httpClient.prepareRequest(request).call(); // Check if bucket exists and is accessible boolean bucketExists = response.httpResponse().isSuccessful(); String region = response.httpResponse().firstMatchingHeader("x-amz-bucket-region").orElse("");- Specified by:
presignHeadBucketin interfaceS3Presigner
-
presignPutObject
Description copied from interface:S3PresignerPresign aPutObjectRequestso that it can be executed at a later time without requiring additional signing or authentication.Example Usage
S3Presigner presigner = ...; // Create a PutObjectRequest to be pre-signed PutObjectRequest putObjectRequest = ...; // Create a PutObjectPresignRequest to specify the signature duration PutObjectPresignRequest putObjectPresignRequest = PutObjectPresignRequest.builder() .signatureDuration(Duration.ofMinutes(10)) .putObjectRequest(request) .build(); // Generate the presigned request PresignedPutObjectRequest presignedPutObjectRequest = presigner.presignPutObject(putObjectPresignRequest);- Specified by:
presignPutObjectin interfaceS3Presigner
-
presignDeleteObject
Description copied from interface:S3PresignerPresign aDeleteObjectRequestso that it can be executed at a later time without requiring additional signing or authentication.Example Usage
S3Presigner presigner = ...; // Create a DeleteObjectRequest to be pre-signed DeleteObjectRequest deleteObjectRequest = ...; // Create a PutObjectPresignRequest to specify the signature duration DeleteObjectPresignRequest deleteObjectPresignRequest = DeleteObjectPresignRequest.builder() .signatureDuration(Duration.ofMinutes(10)) .deleteObjectRequest(deleteObjectRequest) .build(); // Generate the presigned request PresignedDeleteObjectRequest presignedDeleteObjectRequest = presigner.presignDeleteObject(deleteObjectPresignRequest);- Specified by:
presignDeleteObjectin interfaceS3Presigner
-
presignCreateMultipartUpload
public PresignedCreateMultipartUploadRequest presignCreateMultipartUpload(CreateMultipartUploadPresignRequest request) Description copied from interface:S3PresignerPresign aCreateMultipartUploadRequestso that it can be executed at a later time without requiring additional signing or authentication.Example Usage
S3Presigner presigner = ...; // Create a CreateMultipartUploadRequest to be pre-signed CreateMultipartUploadRequest createMultipartUploadRequest = ...; // Create a CreateMultipartUploadPresignRequest to specify the signature duration CreateMultipartUploadPresignRequest createMultipartUploadPresignRequest = CreateMultipartUploadPresignRequest.builder() .signatureDuration(Duration.ofMinutes(10)) .createMultipartUploadRequest(request) .build(); // Generate the presigned request PresignedCreateMultipartUploadRequest presignedCreateMultipartUploadRequest = presigner.presignCreateMultipartUpload(createMultipartUploadPresignRequest);- Specified by:
presignCreateMultipartUploadin interfaceS3Presigner
-
presignUploadPart
Description copied from interface:S3PresignerPresign aUploadPartRequestso that it can be executed at a later time without requiring additional signing or authentication.Example Usage
S3Presigner presigner = ...; // Create a UploadPartRequest to be pre-signed UploadPartRequest uploadPartRequest = ...; // Create a UploadPartPresignRequest to specify the signature duration UploadPartPresignRequest uploadPartPresignRequest = UploadPartPresignRequest.builder() .signatureDuration(Duration.ofMinutes(10)) .uploadPartRequest(request) .build(); // Generate the presigned request PresignedUploadPartRequest presignedUploadPartRequest = presigner.presignUploadPart(uploadPartPresignRequest);- Specified by:
presignUploadPartin interfaceS3Presigner
-
presignCompleteMultipartUpload
public PresignedCompleteMultipartUploadRequest presignCompleteMultipartUpload(CompleteMultipartUploadPresignRequest request) Description copied from interface:S3PresignerPresign aCompleteMultipartUploadRequestso that it can be executed at a later time without requiring additional signing or authentication.Example Usage
S3Presigner presigner = ...; // Complete a CompleteMultipartUploadRequest to be pre-signed CompleteMultipartUploadRequest completeMultipartUploadRequest = ...; // Create a CompleteMultipartUploadPresignRequest to specify the signature duration CompleteMultipartUploadPresignRequest completeMultipartUploadPresignRequest = CompleteMultipartUploadPresignRequest.builder() .signatureDuration(Duration.ofMinutes(10)) .completeMultipartUploadRequest(request) .build(); // Generate the presigned request PresignedCompleteMultipartUploadRequest presignedCompleteMultipartUploadRequest = presigner.presignCompleteMultipartUpload(completeMultipartUploadPresignRequest);- Specified by:
presignCompleteMultipartUploadin interfaceS3Presigner
-
presignAbortMultipartUpload
public PresignedAbortMultipartUploadRequest presignAbortMultipartUpload(AbortMultipartUploadPresignRequest request) Description copied from interface:S3PresignerPresign aAbortMultipartUploadRequestso that it can be executed at a later time without requiring additional signing or authentication.Example Usage
S3Presigner presigner = ...; // Complete a AbortMultipartUploadRequest to be pre-signed AbortMultipartUploadRequest abortMultipartUploadRequest = ...; // Create a AbortMultipartUploadPresignRequest to specify the signature duration AbortMultipartUploadPresignRequest abortMultipartUploadPresignRequest = AbortMultipartUploadPresignRequest.builder() .signatureDuration(Duration.ofMinutes(10)) .abortMultipartUploadRequest(request) .build(); // Generate the presigned request PresignedAbortMultipartUploadRequest presignedAbortMultipartUploadRequest = presigner.presignAbortMultipartUpload(abortMultipartUploadPresignRequest);- Specified by:
presignAbortMultipartUploadin interfaceS3Presigner
-