fix chunk.ModifiedTsNs (#4264)

* fix

* fix mtime s > ns

---------

Co-authored-by: zemul <zhouzemiao@ihuman.com>
This commit is contained in:
zemul 2023-03-03 00:24:36 +08:00 committed by GitHub
parent 8241c9a829
commit 0bf56298d5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 52 additions and 50 deletions

View file

@ -1,47 +1,47 @@
package images package images
import ( import (
"bytes" "bytes"
"image" "image"
"image/gif" "image/gif"
"image/jpeg" "image/jpeg"
"image/png" "image/png"
"io" "io"
"github.com/disintegration/imaging" "github.com/disintegration/imaging"
"github.com/seaweedfs/seaweedfs/weed/glog" "github.com/seaweedfs/seaweedfs/weed/glog"
) )
func Cropped(ext string, read io.ReadSeeker, x1, y1, x2, y2 int) (cropped io.ReadSeeker, err error) { func Cropped(ext string, read io.ReadSeeker, x1, y1, x2, y2 int) (cropped io.ReadSeeker, err error) {
srcImage, _, err := image.Decode(read) srcImage, _, err := image.Decode(read)
if err != nil { if err != nil {
glog.Error(err) glog.Error(err)
return read, err return read, err
} }
bounds := srcImage.Bounds() bounds := srcImage.Bounds()
if x2 > bounds.Dx() || y2 > bounds.Dy() { if x2 > bounds.Dx() || y2 > bounds.Dy() {
read.Seek(0, 0) read.Seek(0, 0)
return read, nil return read, nil
} }
rectangle := image.Rect(x1, y1, x2, y2) rectangle := image.Rect(x1, y1, x2, y2)
dstImage := imaging.Crop(srcImage, rectangle) dstImage := imaging.Crop(srcImage, rectangle)
var buf bytes.Buffer var buf bytes.Buffer
switch ext { switch ext {
case ".jpg", ".jpeg": case ".jpg", ".jpeg":
if err = jpeg.Encode(&buf, dstImage, nil); err != nil { if err = jpeg.Encode(&buf, dstImage, nil); err != nil {
glog.Error(err) glog.Error(err)
} }
case ".png": case ".png":
if err = png.Encode(&buf, dstImage); err != nil { if err = png.Encode(&buf, dstImage); err != nil {
glog.Error(err) glog.Error(err)
} }
case ".gif": case ".gif":
if err = gif.Encode(&buf, dstImage, nil); err != nil { if err = gif.Encode(&buf, dstImage, nil); err != nil {
glog.Error(err) glog.Error(err)
} }
} }
return bytes.NewReader(buf.Bytes()), err return bytes.NewReader(buf.Bytes()), err
} }

View file

@ -1,6 +1,6 @@
package s3_constants package s3_constants
//Amazon S3 predefined groups // Amazon S3 predefined groups
var ( var (
GranteeGroupAllUsers = "http://acs.amazonaws.com/groups/global/AllUsers" GranteeGroupAllUsers = "http://acs.amazonaws.com/groups/global/AllUsers"
GranteeGroupAuthenticatedUsers = "http://acs.amazonaws.com/groups/global/AuthenticatedUsers" GranteeGroupAuthenticatedUsers = "http://acs.amazonaws.com/groups/global/AuthenticatedUsers"

View file

@ -154,10 +154,11 @@ func (fs *FilerServer) CacheRemoteObjectToLocalCluster(ctx context.Context, req
} }
chunks = append(chunks, &filer_pb.FileChunk{ chunks = append(chunks, &filer_pb.FileChunk{
FileId: assignResult.Fid, FileId: assignResult.Fid,
Offset: localOffset, Offset: localOffset,
Size: uint64(size), Size: uint64(size),
ModifiedTsNs: time.Now().Unix(), ModifiedTsNs: time.Now().UnixNano(),
ETag: etag, ETag: etag,
Fid: &filer_pb.FileId{ Fid: &filer_pb.FileId{
VolumeId: uint32(fileId.VolumeId), VolumeId: uint32(fileId.VolumeId),

View file

@ -163,6 +163,7 @@ func (c *commandVolumeFsck) Do(args []string, commandEnv *CommandEnv, writer io.
if *c.findMissingChunksInFiler { if *c.findMissingChunksInFiler {
// collect all filer file ids and paths // collect all filer file ids and paths
if err = c.collectFilerFileIdAndPaths(dataNodeVolumeIdToVInfo, *purgeAbsent, collectCutoffFromAtNs); err != nil { if err = c.collectFilerFileIdAndPaths(dataNodeVolumeIdToVInfo, *purgeAbsent, collectCutoffFromAtNs); err != nil {
return fmt.Errorf("collectFilerFileIdAndPaths: %v", err) return fmt.Errorf("collectFilerFileIdAndPaths: %v", err)
} }

View file

@ -35,7 +35,7 @@ type Topology struct {
volumeSizeLimit uint64 volumeSizeLimit uint64
replicationAsMin bool replicationAsMin bool
isDisableVacuum bool isDisableVacuum bool
Sequence sequence.Sequencer Sequence sequence.Sequencer