diff --git a/s3/s3.go b/s3/s3.go index 64c319e2db0a1d735b8bb5a227e8794babd803a3..11c9c7a0da980a223a99e29423b37c17d27fe6db 100644 --- a/s3/s3.go +++ b/s3/s3.go @@ -30,7 +30,7 @@ type S3UploadResponse struct { type S3UploadSettings struct { MimeType MIMEType RetrieveSignedUrl bool - ExpiryDuration *time.Duration + ExpiryDuration *time.Duration // Used to set expiry datetime of download links. NB: does not affect deletion of object from S3 bucket. AddContentDisposition bool FileName string } @@ -112,6 +112,12 @@ func (s SessionWithHelpers) UploadWithSettings(data []byte, bucket, fileName str Body: bytes.NewReader(data), } + // This sets the expiry date of the download link, not the deletion date of the object in the bucket. + if settings.ExpiryDuration != nil { + expiry := time.Now().Add(*settings.ExpiryDuration) + putInput.Expires = &expiry + } + _, err := s.S3Session.PutObject(putInput) if err != nil { return "", err