Fix CopyObject for CopySource containing a key with slashes #213
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.
When attempting to use CopyObject with a CopySource key containing slashes such as bar/baz/mypic.jpg S3Ninja returns an error:
"sirius.kernel.health.HandledException: An error occurred: Bucket name "mybucket/bar/baz"; does not adhere to the rules.
[https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html]"
The problem is that S3Dispatcher's copyObject() doesn't correctly parse the bucket name and key from
x-amz-copy-source
ascopy.lastIndexOf(PATH_DELIMITER)
returns the index of the last separator in the key, rather than the index of first separator after the bucket name.