0
votes

I'm trying to sync two buckets, one in Google Store and the second one in S3, for that I'm using gsutil. My boto config is as follows:

[Credentials]

gs_access_key_id = XXXX
gs_secret_access_key = XXX

aws_access_key_id = XXX
aws_secret_access_key = XXX

[s3]
host = s3.eu-central-1.amazonaws.com
use-sigv4 = True

My problem is that with this config even a sync from Google Store to a local folder doesn't work!

gsutil -m rsync -r gs://some-bucket ./localfolder/

It fails with the following error:

BadRequestException: 400 ExcessHeaderValues
<?xml version='1.0' encoding='UTF-8'?>
<Error>
  <Code>ExcessHeaderValues</Code>
  <Message>Multiple HTTP header values where one was expected.</Message>
  <Details>Requests cannot specify both x-amz and x-goog headers</Details>
</Error>

When I remove the S3 part in the boto config, the sync from Google Store to a local folder works, but the sync to the S3 bucket fails with the error:

BadRequestException: 400 InvalidRequest
<?xml version="1.0" encoding="UTF-8"?>
<Error>
  <Code>InvalidRequest</Code>
  <Message>The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.</Message>
  <RequestId>XXX</RequestId>
  <HostId>XXX</HostId>
</Error>

Any help please? I searched a lot for a similar issue but didn't find anything.

1

1 Answers

1
votes

The problem was caused by the use-sigv4 = True property! Removing it fixed my issue.