EMCECS / ecs-sync

ecs-sync is a bulk copy utility that can move data between various systems in parallel
Apache License 2.0
61 stars 22 forks source link

Copy from cifs share to S3/AWS #86

Closed rpulikool closed 3 months ago

rpulikool commented 3 years ago

Hi,

I am trying to copy files/folder from my windows machine to S3/AWS as a backup but the script seems to be failing with syntax error, the same command works on linux machine.

java -jar ecs-sync-3.4.2.jar --source file://z:\ --target s3:https://xxx:xxx@s3.amazonaws.com:443/upload-test/ --log-level verbose

2021-10-06 13:21:03 WARN [main ] ApacheUtils: NoSuchMethodException was thrown when disabling normalizeUri. This indicates you are using an old version (< 4.5.8) of Apache http client. It is recommended to use http client version >= 4.5.9 to avoid the breaking change int 2021-10-06 13:21:03 ERROR [main ] EcsSync: Error configuring target storage 2021-10-06 13:21:03 ERROR [main ] EcsSync: unexpected exception com.amazonaws.services.s3.model.AmazonS3Exception: The authorization header is malformed; the region 'us-east-1' is wrong; expecting 'us-east-2' (Service: Amazon S3; Status Code: 400; Error Code: AuthorizationHeaderMalformed; Request ID: S0GJGJ644RYCPTG8; S3 Extended Request ID: 7P at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1742) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleServiceErrorResponse(AmazonHttpClient.java:1371) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1347) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1127) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:784) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:752) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:726) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:686) at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:668) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:532) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:512) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:5052) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4998) at com.amazonaws.services.s3.AmazonS3Client.getAcl(AmazonS3Client.java:3912) at com.amazonaws.services.s3.AmazonS3Client.getBucketAcl(AmazonS3Client.java:1241) at com.amazonaws.services.s3.AmazonS3Client.getBucketAcl(AmazonS3Client.java:1231) at com.amazonaws.services.s3.AmazonS3Client.doesBucketExistV2(AmazonS3Client.java:1369) at com.emc.ecs.sync.storage.s3.AwsS3Storage.configure(AwsS3Storage.java:148) at com.emc.ecs.sync.EcsSync.run(EcsSync.java:214) at com.emc.ecs.sync.EcsSync.main(EcsSync.java:108) 2021-10-06 13:21:03 WARN [main ] EcsSync: terminated early! 2021-10-06 13:21:03 INFO [main ] RestServer: stopping REST server... com.amazonaws.services.s3.model.AmazonS3Exception: The authorization header is malformed; the region 'us-east-1' is wrong; expecting 'us-east-2' (Service: Amazon S3; Status Code: 400; Error Code: AuthorizationHeaderMalformed; Request ID: S0GJGJ644RYCPTG8; S3 Extended Request ID: 7P at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1742) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleServiceErrorResponse(AmazonHttpClient.java:1371) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1347) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1127) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:784) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:752) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:726) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:686) at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:668) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:532) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:512) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:5052) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4998) at com.amazonaws.services.s3.AmazonS3Client.getAcl(AmazonS3Client.java:3912) at com.amazonaws.services.s3.AmazonS3Client.getBucketAcl(AmazonS3Client.java:1241) at com.amazonaws.services.s3.AmazonS3Client.getBucketAcl(AmazonS3Client.java:1231) at com.amazonaws.services.s3.AmazonS3Client.doesBucketExistV2(AmazonS3Client.java:1369) at com.emc.ecs.sync.storage.s3.AwsS3Storage.configure(AwsS3Storage.java:148) at com.emc.ecs.sync.EcsSync.run(EcsSync.java:214) at com.emc.ecs.sync.EcsSync.main(EcsSync.java:108)

xiaoxin-ren commented 2 years ago

In your case, region "us-east-2" is required for bucket access. You can provide Region info when creating new sync task in ECS UI.

dunedodo commented 3 months ago

@rpulikool As it has been a long time since the last response, I'll close the ticket. Please feel free to reopen it if you hit the same issue.