@@ -248,12 +248,12 @@ func newSyncManager(meta *reader.Meta, opts *syncOptions) (*syncManager, error)
248248
249249func makeSyncSource (bucket , prefix string ) string {
250250 if prefix == "" {
251- return fmt .Sprintf ("s3:// %s" , bucket )
251+ return fmt .Sprintf ("%s" , bucket )
252252 }
253253 if strings .HasPrefix (prefix , "/" ) {
254- return fmt .Sprintf ("s3:// %s%s" , bucket , prefix )
254+ return fmt .Sprintf ("%s%s" , bucket , prefix )
255255 }
256- return fmt .Sprintf ("s3:// %s/%s" , bucket , prefix )
256+ return fmt .Sprintf ("%s/%s" , bucket , prefix )
257257}
258258
259259func (mgr * syncManager ) startSync () {
@@ -319,9 +319,6 @@ func newSyncRunner(ctx *syncContext, quitChan chan struct{}) *syncRunner {
319319}
320320
321321func (s * syncRunner ) Sync () error {
322- if ! validSource (s .source ) {
323- return fmt .Errorf ("invalid sync source %q" , s .source )
324- }
325322 if ! validTarget (s .target ) {
326323 return fmt .Errorf ("invalid sync target %q" , s .target )
327324 }
@@ -457,10 +454,20 @@ func (r *s3Url) keys() []string {
457454
458455func lookupBucket (bucketName string , auth aws.Auth , region string , endpoint string ) (* s3.Bucket , error ) {
459456 log .Infof ("looking for bucket %q in region %q" , bucketName , region )
460- rg := aws .Regions [region ]
461- if endpoint != "" {
462- rg .S3Endpoint = endpoint
457+
458+ rg , ok := aws .Regions [region ]
459+ if ! ok {
460+ rg = aws.Region {
461+ Name : region ,
462+ S3Endpoint : endpoint ,
463+ }
464+ } else {
465+ // replace default endpoint
466+ if endpoint != "" {
467+ rg .S3Endpoint = endpoint
468+ }
463469 }
470+
464471 s3 := s3 .New (auth , rg )
465472 bucket := s3 .Bucket (bucketName )
466473 _ , err := bucket .List ("" , "" , "" , 0 )
0 commit comments