Skip to content

Added UploadDirectoryRequest.Builder#uploadRequestTransformer that al… #2799

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 3 commits into from
Nov 10, 2021

Conversation

millems
Copy link
Contributor

@millems millems commented Oct 26, 2021

…lows modifying the UploadRequests generated during directory uploads.

Copy link
Contributor

@cenedhryn cenedhryn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this addition.

@millems millems force-pushed the millem/transfer-manager-put-object-modifier branch from d53e900 to b1dfa94 Compare October 27, 2021 18:09
…ransformer that allows modifying the UploadFileRequests generated during directory uploads.
@millems millems force-pushed the millem/transfer-manager-put-object-modifier branch from 3def570 to 4dd1454 Compare November 9, 2021 20:45
* // Add a LoggingTransferListener to every transfer within the upload directory request
* TransferRequestOverrideConfiguration fileUploadConfiguration =
* TransferRequestOverrideConfiguration.builder()
* .addListener(LoggingTransferListener.create())
Copy link
Contributor

@Bennett-Lynch Bennett-Lynch Nov 9, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Out of scope of this PR but worth noting: This works, but it's going to result in using the same listener for every invocation, when the current LoggingTransferListener implementation assumes that it's not going to be reused. We've so far refrained from adding listeners at the client-level for this reason. A user could implement a reusable listener by internally mapping something like TransferRequest to internal listener state, but this is a lot of complexity. I wonder if we should change listeners to be declared with a Supplier instead.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, yeah, seems like it's easy to make that mistake, then. I certainly thought this would be fine. What do you recommend I do for the purposes of this PR?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we moved the LoggingTransferListener.create() call to be inside your lambda, it would create a new one for every request and work as expected, but that may make the code less readable. If we can update the example to do that, without severely affecting legibility, then I would recommend that. Otherwise I think it's okay to use your example as-is and we can do a fast-follow-up on whether to accept a Supplier or not.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would unfortuantely be very difficult to make it readable with the lambdas. I'll leave it as-is and we can move it to a supplier asynchronously.

@millems millems requested a review from a team as a code owner November 10, 2021 00:17
@millems millems merged commit 821a342 into master Nov 10, 2021
@millems millems deleted the millem/transfer-manager-put-object-modifier branch November 10, 2021 18:30
@sonarqubecloud
Copy link

SonarCloud Quality Gate failed.    Quality Gate failed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 1 Code Smell

73.9% 73.9% Coverage
0.0% 0.0% Duplication

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants