-
Notifications
You must be signed in to change notification settings - Fork 954
V4a async payload signing #6475
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
21ff181
Add support for SigV4a async signing
dagnir dbb0e6a
Update exception type
dagnir cd72dbf
Update S3 regression tests to test MRAP buckets
dagnir f5876e0
Move CrtRequestBodyAdapter to crt-core
dagnir 3339700
Revert "Move CrtRequestBodyAdapter to crt-core"
dagnir dab72d2
Move CrtRequestBodyAdapter to crt-core
dagnir 7a53d56
Fix annotation
dagnir 49a6279
Switch to crt-core adapter
dagnir ac2cc53
Fix import
dagnir 7458a1e
Revert "Fix import"
dagnir a97b817
Revert "Switch to crt-core adapter"
dagnir 0fee2ae
Merge branch 'master' into dongie/sra-chunk-encoding-pt2
dagnir 2fde0c0
Udpate CrtRequestBodyAdapter
dagnir b1f0113
Fix javadoc
dagnir 6877d7b
Merge remote-tracking branch 'origin/master' into dongie/sra-chunk-en…
dagnir 99be888
Merge branch 'master' into dongie/sra-chunk-encoding-pt2
dagnir File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| { | ||
| "type": "feature", | ||
| "category": "AWS SDK for Java v2", | ||
| "contributor": "", | ||
| "description": "Add support for signing async payloads in the default `AwsV4aHttpSigner`." | ||
| } |
57 changes: 57 additions & 0 deletions
57
core/crt-core/src/main/java/software/amazon/awssdk/crtcore/CrtRequestBodyAdapter.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,57 @@ | ||
| /* | ||
| * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. | ||
| * | ||
| * Licensed under the Apache License, Version 2.0 (the "License"). | ||
| * You may not use this file except in compliance with the License. | ||
| * A copy of the License is located at | ||
| * | ||
| * http://aws.amazon.com/apache2.0 | ||
| * | ||
| * or in the "license" file accompanying this file. This file is distributed | ||
| * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either | ||
| * express or implied. See the License for the specific language governing | ||
| * permissions and limitations under the License. | ||
| */ | ||
|
|
||
| package software.amazon.awssdk.crtcore; | ||
|
|
||
| import java.nio.ByteBuffer; | ||
| import org.reactivestreams.Publisher; | ||
| import software.amazon.awssdk.annotations.SdkProtectedApi; | ||
| import software.amazon.awssdk.crt.http.HttpRequestBodyStream; | ||
| import software.amazon.awssdk.utils.async.ByteBufferStoringSubscriber; | ||
| import software.amazon.awssdk.utils.async.ByteBufferStoringSubscriber.TransferResult; | ||
|
|
||
| /** | ||
| * This class adapts a {@link Publisher} of {@link ByteBuffer} to the CRT {@link HttpRequestBodyStream}. | ||
| */ | ||
| @SdkProtectedApi | ||
| public final class CrtRequestBodyAdapter implements HttpRequestBodyStream { | ||
| private static final int BUFFER_SIZE = 4 * 1024 * 1024; // 4 MB | ||
| private final Publisher<ByteBuffer> requestPublisher; | ||
| private final long contentLength; | ||
| private ByteBufferStoringSubscriber requestBodySubscriber; | ||
|
|
||
| public CrtRequestBodyAdapter(Publisher<ByteBuffer> requestPublisher, long contentLength) { | ||
| this.requestPublisher = requestPublisher; | ||
| this.contentLength = contentLength; | ||
| this.requestBodySubscriber = new ByteBufferStoringSubscriber(BUFFER_SIZE); | ||
| } | ||
|
|
||
| @Override | ||
| public boolean sendRequestBody(ByteBuffer bodyBytesOut) { | ||
| return requestBodySubscriber.transferTo(bodyBytesOut) == TransferResult.END_OF_STREAM; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean resetPosition() { | ||
| requestBodySubscriber = new ByteBufferStoringSubscriber(BUFFER_SIZE); | ||
| requestPublisher.subscribe(requestBodySubscriber); | ||
| return true; | ||
| } | ||
|
|
||
| @Override | ||
| public long getLength() { | ||
| return contentLength; | ||
| } | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.