diff --git a/s3/s3.go b/s3/s3.go index 9784db880c32a3062afa80d14554fb49fc4e04de..6cde7c0ff732325d145071704815419a488caefb 100644 --- a/s3/s3.go +++ b/s3/s3.go @@ -249,14 +249,14 @@ func (s SessionWithHelpers) GetObjectMetadata(bucket string, fileName string, is } // MoveObjectBucketToBucket - Move object from one S3 bucket to another -func (s SessionWithHelpers) MoveObjectBucketToBucket(sourceBucket string, destinationBucket string, sourceFileName string, destinationFileName string, isDebug bool) error { +func (s SessionWithHelpers) MoveObjectBucketToBucket(sourceBucket string, destinationBucket string, sourceFileName string, destinationFileName string, settings S3UploadSettings) error { - err := s.CopyObjectBucketToBucket(sourceBucket, destinationBucket, sourceFileName, destinationFileName, isDebug) + err := s.CopyObjectBucketToBucket(sourceBucket, destinationBucket, sourceFileName, destinationFileName, settings) if err != nil { return err } - err = s.DeleteObjectFromBucket(sourceBucket, sourceFileName, isDebug) + err = s.DeleteObjectFromBucket(sourceBucket, sourceFileName) if err != nil { return err } @@ -265,7 +265,7 @@ func (s SessionWithHelpers) MoveObjectBucketToBucket(sourceBucket string, destin } // CopyObjectBucketToBucket - Copy an object from one S3 bucket to another -func (s SessionWithHelpers) CopyObjectBucketToBucket(sourceBucket string, destinationBucket string, sourceFileName string, destinationFilename string, isDebug bool) error { +func (s SessionWithHelpers) CopyObjectBucketToBucket(sourceBucket string, destinationBucket string, sourceFileName string, destinationFilename string, settings S3UploadSettings) error { // copy the file copySource := url.QueryEscape(sourceBucket + "/" + sourceFileName) copyObjectInput := &s3.CopyObjectInput{ @@ -273,6 +273,12 @@ func (s SessionWithHelpers) CopyObjectBucketToBucket(sourceBucket string, destin CopySource: aws.String(copySource), // source path (ie: myBucket/myFile.csv) Key: aws.String(destinationFilename), // filename on destination } + + if settings.ExpiryDuration != nil { + expiry := time.Now().Add(*settings.ExpiryDuration) + copyObjectInput.Expires = &expiry + } + _, err := s.S3Session.CopyObject(copyObjectInput) if err != nil { return err @@ -288,7 +294,7 @@ func (s SessionWithHelpers) CopyObjectBucketToBucket(sourceBucket string, destin } // DeleteObjectFromBucket - Delete an object from an S3 bucket -func (s SessionWithHelpers) DeleteObjectFromBucket(bucket string, fileName string, isDebug bool) error { +func (s SessionWithHelpers) DeleteObjectFromBucket(bucket string, fileName string) error { // delete the file deleteObjectInput := &s3.DeleteObjectInput{ Bucket: aws.String(bucket),