diff --git a/weed/filer2/filer_notify_append.go b/weed/filer2/filer_notify_append.go
index 6671cd909..efe7b0213 100644
--- a/weed/filer2/filer_notify_append.go
+++ b/weed/filer2/filer_notify_append.go
@@ -44,6 +44,7 @@ func (f *Filer) appendToFile(targetFile string, data []byte) error {
 		Size:      uint64(uploadResult.Size),
 		Mtime:     time.Now().UnixNano(),
 		ETag:      uploadResult.ETag,
+		CipherKey: uploadResult.CipherKey,
 		IsGzipped: uploadResult.Gzip > 0,
 	}
 	entry.Chunks = append(entry.Chunks, chunk)
diff --git a/weed/s3api/filer_multipart.go b/weed/s3api/filer_multipart.go
index 85ed99854..64a7331d9 100644
--- a/weed/s3api/filer_multipart.go
+++ b/weed/s3api/filer_multipart.go
@@ -69,11 +69,12 @@ func (s3a *S3ApiServer) completeMultipartUpload(input *s3.CompleteMultipartUploa
 		if strings.HasSuffix(entry.Name, ".part") && !entry.IsDirectory {
 			for _, chunk := range entry.Chunks {
 				p := &filer_pb.FileChunk{
-					FileId: chunk.GetFileIdString(),
-					Offset: offset,
-					Size:   chunk.Size,
-					Mtime:  chunk.Mtime,
-					ETag:   chunk.ETag,
+					FileId:    chunk.GetFileIdString(),
+					Offset:    offset,
+					Size:      chunk.Size,
+					Mtime:     chunk.Mtime,
+					CipherKey: chunk.CipherKey,
+					ETag:      chunk.ETag,
 				}
 				finalParts = append(finalParts, p)
 				offset += int64(chunk.Size)