aboutsummaryrefslogtreecommitdiff
path: root/weed/server/filer_server_handlers_write_upload.go
diff options
context:
space:
mode:
authorzemul <zemul@foxmail.com>2024-09-23 23:51:03 +0800
committerGitHub <noreply@github.com>2024-09-23 08:51:03 -0700
commit028ebb1d0d2d88e7a467a0d0ed7908f6882c4f34 (patch)
treef26abf2994199687c18e812837a08ebdd87fd365 /weed/server/filer_server_handlers_write_upload.go
parent4c1e23ad00da7acf81f1b1133ec50a8f96c63ab6 (diff)
downloadseaweedfs-028ebb1d0d2d88e7a467a0d0ed7908f6882c4f34.tar.xz
seaweedfs-028ebb1d0d2d88e7a467a0d0ed7908f6882c4f34.zip
Feat:merge small chunk (#6049)
* fix:mount deadlock * feat: merge small chunk * adjust MergeChunkMinCount * fix --------- Co-authored-by: zemul <zhouzemiao@ihuman.com>
Diffstat (limited to 'weed/server/filer_server_handlers_write_upload.go')
-rw-r--r--weed/server/filer_server_handlers_write_upload.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/weed/server/filer_server_handlers_write_upload.go b/weed/server/filer_server_handlers_write_upload.go
index d0d1575cf..a08d5efe0 100644
--- a/weed/server/filer_server_handlers_write_upload.go
+++ b/weed/server/filer_server_handlers_write_upload.go
@@ -27,7 +27,7 @@ var bufPool = sync.Pool{
},
}
-func (fs *FilerServer) uploadReaderToChunks(w http.ResponseWriter, r *http.Request, reader io.Reader, chunkSize int32, fileName, contentType string, contentLength int64, so *operation.StorageOption) (fileChunks []*filer_pb.FileChunk, md5Hash hash.Hash, chunkOffset int64, uploadErr error, smallContent []byte) {
+func (fs *FilerServer) uploadRequestToChunks(w http.ResponseWriter, r *http.Request, reader io.Reader, chunkSize int32, fileName, contentType string, contentLength int64, so *operation.StorageOption) (fileChunks []*filer_pb.FileChunk, md5Hash hash.Hash, chunkOffset int64, uploadErr error, smallContent []byte) {
query := r.URL.Query()
isAppend := isAppend(r)
@@ -45,7 +45,13 @@ func (fs *FilerServer) uploadReaderToChunks(w http.ResponseWriter, r *http.Reque
chunkOffset = offsetInt
}
+ return fs.uploadReaderToChunks(reader, chunkOffset, chunkSize, fileName, contentType, isAppend, so)
+}
+
+func (fs *FilerServer) uploadReaderToChunks(reader io.Reader, startOffset int64, chunkSize int32, fileName, contentType string, isAppend bool, so *operation.StorageOption) (fileChunks []*filer_pb.FileChunk, md5Hash hash.Hash, chunkOffset int64, uploadErr error, smallContent []byte) {
+
md5Hash = md5.New()
+ chunkOffset = startOffset
var partReader = io.NopCloser(io.TeeReader(reader, md5Hash))
var wg sync.WaitGroup