X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/865e5c1e3730117870eb1e485d553383626b882f..ae861c95e345c2850d6795f1aed201ed69318e3b:/services/keepstore/s3aws_volume.go diff --git a/services/keepstore/s3aws_volume.go b/services/keepstore/s3aws_volume.go index c9fa7fce5e..baded41163 100644 --- a/services/keepstore/s3aws_volume.go +++ b/services/keepstore/s3aws_volume.go @@ -33,7 +33,7 @@ import ( "github.com/sirupsen/logrus" ) -// S3Volume implements Volume using an S3 bucket. +// S3AWSVolume implements Volume using an S3 bucket. type S3AWSVolume struct { arvados.S3VolumeDriverParameters AuthToken string // populated automatically when IAMRole is used @@ -69,10 +69,9 @@ func chooseS3VolumeDriver(cluster *arvados.Cluster, volume arvados.Volume, logge if v.UseAWSS3v2Driver { logger.Debugln("Using AWS S3 v2 driver") return newS3AWSVolume(cluster, volume, logger, metrics) - } else { - logger.Debugln("Using goamz S3 driver") - return newS3Volume(cluster, volume, logger, metrics) } + logger.Debugln("Using goamz S3 driver") + return newS3Volume(cluster, volume, logger, metrics) } const ( @@ -193,7 +192,7 @@ func (v *S3AWSVolume) check(ec2metadataHostname string) error { creds := aws.NewChainProvider( []aws.CredentialsProvider{ - aws.NewStaticCredentialsProvider(v.AccessKey, v.SecretKey, v.AuthToken), + aws.NewStaticCredentialsProvider(v.AccessKeyID, v.SecretAccessKey, v.AuthToken), ec2rolecreds.New(ec2metadata.New(cfg)), }) @@ -728,7 +727,10 @@ func (v *S3AWSVolume) IndexTo(prefix string, writer io.Writer) error { if err := recentL.Error(); err != nil { return err } - fmt.Fprintf(writer, "%s+%d %d\n", *data.Key, *data.Size, stamp.LastModified.UnixNano()) + // We truncate sub-second precision here. Otherwise + // timestamps will never match the RFC1123-formatted + // Last-Modified values parsed by Mtime(). + fmt.Fprintf(writer, "%s+%d %d\n", *data.Key, *data.Size, stamp.LastModified.Unix()*1000000000) } return dataL.Error() }