From 243d4b14f00e3e5eb067567816ba2d604c77d77f Mon Sep 17 00:00:00 2001 From: chenmin Date: Sun, 25 Apr 2021 19:37:58 +0800 Subject: [PATCH] =?UTF-8?q?[PDR-13603][bug]=20=E4=BF=AE=E5=A4=8D=20s3=20?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=97=A0=E6=B3=95=E5=AF=B9=E6=8E=A5=E5=85=B6?= =?UTF-8?q?=E4=BB=96=E5=B9=B3=E5=8F=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reader/cloudtrail/cloudtrail.go | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/reader/cloudtrail/cloudtrail.go b/reader/cloudtrail/cloudtrail.go index 7c8e9aaf4..2ebf29d0d 100644 --- a/reader/cloudtrail/cloudtrail.go +++ b/reader/cloudtrail/cloudtrail.go @@ -248,12 +248,12 @@ func newSyncManager(meta *reader.Meta, opts *syncOptions) (*syncManager, error) func makeSyncSource(bucket, prefix string) string { if prefix == "" { - return fmt.Sprintf("s3://%s", bucket) + return fmt.Sprintf("%s", bucket) } if strings.HasPrefix(prefix, "/") { - return fmt.Sprintf("s3://%s%s", bucket, prefix) + return fmt.Sprintf("%s%s", bucket, prefix) } - return fmt.Sprintf("s3://%s/%s", bucket, prefix) + return fmt.Sprintf("%s/%s", bucket, prefix) } func (mgr *syncManager) startSync() { @@ -319,9 +319,6 @@ func newSyncRunner(ctx *syncContext, quitChan chan struct{}) *syncRunner { } func (s *syncRunner) Sync() error { - if !validSource(s.source) { - return fmt.Errorf("invalid sync source %q", s.source) - } if !validTarget(s.target) { return fmt.Errorf("invalid sync target %q", s.target) } @@ -457,10 +454,20 @@ func (r *s3Url) keys() []string { func lookupBucket(bucketName string, auth aws.Auth, region string, endpoint string) (*s3.Bucket, error) { log.Infof("looking for bucket %q in region %q", bucketName, region) - rg := aws.Regions[region] - if endpoint != "" { - rg.S3Endpoint = endpoint + + rg, ok := aws.Regions[region] + if !ok { + rg = aws.Region{ + Name: region, + S3Endpoint: endpoint, + } + } else { + // replace default endpoint + if endpoint != "" { + rg.S3Endpoint = endpoint + } } + s3 := s3.New(auth, rg) bucket := s3.Bucket(bucketName) _, err := bucket.List("", "", "", 0)