diff options
| author | zemul <zemul@foxmail.com> | 2024-09-23 23:51:03 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-23 08:51:03 -0700 |
| commit | 028ebb1d0d2d88e7a467a0d0ed7908f6882c4f34 (patch) | |
| tree | f26abf2994199687c18e812837a08ebdd87fd365 /weed/server/filer_server_handlers_write_upload.go | |
| parent | 4c1e23ad00da7acf81f1b1133ec50a8f96c63ab6 (diff) | |
| download | seaweedfs-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.go | 8 |
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 |
