fix: iso8601TimeFormat padding issue for certain nanoseconds (#16207)

This commit is contained in:
Harshavardhana
2022-12-12 10:28:30 -08:00
committed by GitHub
parent a2cbeaa9e6
commit 2fc182d8e6
8 changed files with 146 additions and 44 deletions

View File

@@ -38,6 +38,7 @@ import (
"github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/encrypt"
"github.com/minio/minio-go/v7/pkg/tags"
"github.com/minio/minio/internal/amztime"
"github.com/minio/minio/internal/bucket/bandwidth"
objectlock "github.com/minio/minio/internal/bucket/object/lock"
"github.com/minio/minio/internal/bucket/replication"
@@ -738,12 +739,9 @@ func putReplicationOpts(ctx context.Context, sc string, objInfo ObjectInfo) (put
putOpts.Mode = rmode
}
if retainDateStr, ok := lkMap.Lookup(xhttp.AmzObjectLockRetainUntilDate); ok {
rdate, err := time.Parse(iso8601TimeFormat, retainDateStr)
rdate, err := amztime.ISO8601Parse(retainDateStr)
if err != nil {
rdate, err = time.Parse(time.RFC3339, retainDateStr)
if err != nil {
return putOpts, err
}
return putOpts, err
}
putOpts.RetainUntilDate = rdate
// set retention timestamp in opts