mirror of
https://github.com/rclone/rclone.git
synced 2025-06-25 06:23:03 +02:00
serve s3: fix Last-Modified timestamp
This had two problems 1. It was using a single digit for day of month 2. It is supposed to be in UTC Fixes #8277
This commit is contained in:
parent
d6f0d1d349
commit
a389a2979b
@ -9,6 +9,7 @@ import (
|
|||||||
"path"
|
"path"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/ncw/swift/v2"
|
"github.com/ncw/swift/v2"
|
||||||
"github.com/rclone/gofakes3"
|
"github.com/rclone/gofakes3"
|
||||||
@ -18,7 +19,6 @@ import (
|
|||||||
|
|
||||||
var (
|
var (
|
||||||
emptyPrefix = &gofakes3.Prefix{}
|
emptyPrefix = &gofakes3.Prefix{}
|
||||||
timeFormat = "Mon, 2 Jan 2006 15:04:05 GMT"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// s3Backend implements the gofacess3.Backend interface to make an S3
|
// s3Backend implements the gofacess3.Backend interface to make an S3
|
||||||
@ -98,6 +98,13 @@ func (b *s3Backend) ListBucket(ctx context.Context, bucket string, prefix *gofak
|
|||||||
return b.pager(response, page)
|
return b.pager(response, page)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// formatHeaderTime makes an timestamp which is the same as that used by AWS.
|
||||||
|
//
|
||||||
|
// This is like RFC1123 always in UTC, but has GMT instead of UTC
|
||||||
|
func formatHeaderTime(t time.Time) string {
|
||||||
|
return t.UTC().Format("Mon, 02 Jan 2006 15:04:05") + " GMT"
|
||||||
|
}
|
||||||
|
|
||||||
// HeadObject returns the fileinfo for the given object name.
|
// HeadObject returns the fileinfo for the given object name.
|
||||||
//
|
//
|
||||||
// Note that the metadata is not supported yet.
|
// Note that the metadata is not supported yet.
|
||||||
@ -131,7 +138,7 @@ func (b *s3Backend) HeadObject(ctx context.Context, bucketName, objectName strin
|
|||||||
hash := getFileHashByte(fobj)
|
hash := getFileHashByte(fobj)
|
||||||
|
|
||||||
meta := map[string]string{
|
meta := map[string]string{
|
||||||
"Last-Modified": node.ModTime().Format(timeFormat),
|
"Last-Modified": formatHeaderTime(node.ModTime()),
|
||||||
"Content-Type": fs.MimeType(context.Background(), fobj),
|
"Content-Type": fs.MimeType(context.Background(), fobj),
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -208,7 +215,7 @@ func (b *s3Backend) GetObject(ctx context.Context, bucketName, objectName string
|
|||||||
}
|
}
|
||||||
|
|
||||||
meta := map[string]string{
|
meta := map[string]string{
|
||||||
"Last-Modified": node.ModTime().Format(timeFormat),
|
"Last-Modified": formatHeaderTime(node.ModTime()),
|
||||||
"Content-Type": fs.MimeType(context.Background(), fobj),
|
"Content-Type": fs.MimeType(context.Background(), fobj),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user