X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/2be95ce7f069d9eb131b0d2d922a5e556f75810c..dad333f819ba1e4c7634527130634da40585f3aa:/services/keepstore/s3_volume.go diff --git a/services/keepstore/s3_volume.go b/services/keepstore/s3_volume.go index 96f2e7db39..07bb033c9f 100644 --- a/services/keepstore/s3_volume.go +++ b/services/keepstore/s3_volume.go @@ -32,12 +32,12 @@ import ( ) func init() { - driver["S3"] = newS3Volume + driver["S3"] = chooseS3VolumeDriver } func newS3Volume(cluster *arvados.Cluster, volume arvados.Volume, logger logrus.FieldLogger, metrics *volumeMetricsVecs) (Volume, error) { v := &S3Volume{cluster: cluster, volume: volume, metrics: metrics} - err := json.Unmarshal(volume.DriverParameters, &v) + err := json.Unmarshal(volume.DriverParameters, v) if err != nil { return nil, err } @@ -586,7 +586,10 @@ func (v *S3Volume) IndexTo(prefix string, writer io.Writer) error { if err != nil { return err } - fmt.Fprintf(writer, "%s+%d %d\n", data.Key, data.Size, t.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, t.Unix()*1000000000) } return dataL.Error() }