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
public final class DefaultS3Presigner extends DefaultSdkPresigner implements S3Presigner
The default implementation of theS3Presignerinterface.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDefaultS3Presigner.Builder
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static S3Presigner.Builderbuilder()Create anS3Presigner.Builderthat can be used to configure and create aS3Presigner.PresignedAbortMultipartUploadRequestpresignAbortMultipartUpload(AbortMultipartUploadPresignRequest request)Presign aAbortMultipartUploadRequestso that it can be executed at a later time without requiring additional signing or authentication.PresignedCompleteMultipartUploadRequestpresignCompleteMultipartUpload(CompleteMultipartUploadPresignRequest request)Presign aCompleteMultipartUploadRequestso that it can be executed at a later time without requiring additional signing or authentication.PresignedCreateMultipartUploadRequestpresignCreateMultipartUpload(CreateMultipartUploadPresignRequest request)Presign aCreateMultipartUploadRequestso that it can be executed at a later time without requiring additional signing or authentication.PresignedDeleteObjectRequestpresignDeleteObject(DeleteObjectPresignRequest request)Presign aDeleteObjectRequestso that it can be executed at a later time without requiring additional signing or authentication.PresignedGetObjectRequestpresignGetObject(GetObjectPresignRequest request)Presign aGetObjectRequestso that it can be executed at a later time without requiring additional signing or authentication.PresignedHeadBucketRequestpresignHeadBucket(HeadBucketPresignRequest request)Presign aHeadBucketRequestso that it can be executed at a later time without requiring additional signing or authentication.PresignedHeadObjectRequestpresignHeadObject(HeadObjectPresignRequest request)Presign aHeadObjectRequestso that it can be executed at a later time without requiring additional signing or authentication.PresignedPutObjectRequestpresignPutObject(PutObjectPresignRequest request)Presign aPutObjectRequestso that it can be executed at a later time without requiring additional signing or authentication.PresignedUploadPartRequestpresignUploadPart(UploadPartPresignRequest request)Presign aUploadPartRequestso that it can be executed at a later time without requiring additional signing or authentication.protected S3ConfigurationserviceConfiguration()-
Methods inherited from class software.amazon.awssdk.services.s3.internal.signing.DefaultSdkPresigner
close, credentialsProvider, dualstackEnabled, endpointOverride, fipsEnabled, profileFileSupplier, profileName, region
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface software.amazon.awssdk.services.s3.presigner.S3Presigner
presignAbortMultipartUpload, presignCompleteMultipartUpload, presignCreateMultipartUpload, presignDeleteObject, presignGetObject, presignHeadBucket, presignHeadObject, presignPutObject, presignUploadPart
-
Methods inherited from interface software.amazon.awssdk.awscore.presigner.SdkPresigner
close
-
-
-
-
Method Detail
-
builder
public static S3Presigner.Builder builder()
Description copied from interface:S3PresignerCreate anS3Presigner.Builderthat can be used to configure and create aS3Presigner. This is usually done at application startup, because creating a presigner can be expensive. It is recommended toSdkPresigner.close()theS3Presignerwhen it is done being used.
-
presignGetObject
public PresignedGetObjectRequest presignGetObject(GetObjectPresignRequest request)
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
public PresignedHeadObjectRequest presignHeadObject(HeadObjectPresignRequest request)
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
public PresignedHeadBucketRequest presignHeadBucket(HeadBucketPresignRequest request)
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
public PresignedPutObjectRequest presignPutObject(PutObjectPresignRequest request)
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
public PresignedDeleteObjectRequest presignDeleteObject(DeleteObjectPresignRequest request)
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
public PresignedUploadPartRequest presignUploadPart(UploadPartPresignRequest request)
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
-
serviceConfiguration
protected S3Configuration serviceConfiguration()
-
-