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
I'm seeing "%2F" instead of "/" in remote paths, which causes "s3 sync" to always delete/replace unchanged files #1879
Comments
I'm not seeing this behavior. We'll need more information to help troubleshoot:
Here's what I tried:
|
Hi James, I just repeated your steps and the result was as follows:
I then went a step further by issuing the "rm" command manually:
This means the bug is isolated to the "ls" command. I'm an Arch Linux user. You can see the dependency tree for the "aws-cli" package here. |
Dreamhost Ceph dev here; I think this might be a Ceph bug, but that part of the S3 API docs are unclear... The latest master branch of ceph http://github.com/ceph/ceph, doing the Notice that the Key blocks have URL encoding of the /.
The API document here: http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html Here is where the change was introduced in Ceph: |
This change introduces handling for the encoding-type request parameter on the get bucket operation. An object key may contain characters which are not supported in XML. Passing the value "url" for the encoding-type parameter will cause the key to be urlencoded in the response. Fixes: #12735 Signed-off-by: Jeff Weber <jweber@cofront.net>
For completeness, here is the response of
|
Tests with an actual unicode character also show breakage: Ceph
AWS
|
For the sake of completeness, I've just mentioned this problem on the DreamObjects forum. As you can see, I've also linked to the patch that apparently fixes it. One of the DreamHost Ceph developers will hopefully merge it in soon ;-). |
Looks like there's a few threads tracking this issue. Am I correct in summarizing that the root cause was related to an issue in ceph/ceph and the fix for that issue has been merged? If that's the case I'm going to go ahead and close out this issue as I don't think there's anything needed on our end. Let me know if I've missed anything and I'll reopen and take another look. |
Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>
In recent weeks, I've noticed that "aws s3 sync" always deletes and replaces the remote files (even if they haven't changed). This, of course, makes the sync operations much longer than they should be (as everything has to be re-uploaded).
I think it's because the final "/" in the remote path is getting converted to "%2F". This didn't use to happen, so I'm guessing it's due to a bug somewhere in the code. I've tried downgrading "botocore" to v1.3.23 and "aws-cli" to v1.10.1, but this unfortunately doesn't fix the problem.
Below is an example of the output I'm receiving these days. The file hasn't changed in months, so there's no way it should be deleted/replaced. Unfortunately, no matter how many times I run this command, I see the below output. In which component is the bug and how can I work around it?
The text was updated successfully, but these errors were encountered: