Browse Source

debug logs

pull/7481/head
chrislu 3 weeks ago
parent
commit
f2319f1134
  1. 11
      weed/s3api/filer_multipart.go
  2. 8
      weed/s3api/s3api_object_handlers_multipart.go
  3. 15
      weed/s3api/s3api_object_handlers_put.go

11
weed/s3api/filer_multipart.go

@ -664,18 +664,23 @@ func (s3a *S3ApiServer) listObjectParts(input *s3.ListPartsInput) (output *ListP
glog.Errorf("listObjectParts %s %s parse %s: %v", *input.Bucket, *input.UploadId, entry.Name, err)
continue
}
output.Part = append(output.Part, &s3.Part{
partETag := filer.ETag(entry)
part := &s3.Part{
PartNumber: aws.Int64(int64(partNumber)),
LastModified: aws.Time(time.Unix(entry.Attributes.Mtime, 0).UTC()),
Size: aws.Int64(int64(filer.FileSize(entry))),
ETag: aws.String("\"" + filer.ETag(entry) + "\""),
})
ETag: aws.String("\"" + partETag + "\""),
}
output.Part = append(output.Part, part)
glog.V(3).Infof("listObjectParts: Added part %d, size=%d, etag=%s",
partNumber, filer.FileSize(entry), partETag)
if !isLast {
output.NextPartNumberMarker = aws.Int64(int64(partNumber))
}
}
}
glog.V(2).Infof("listObjectParts: Returning %d parts for uploadId=%s", len(output.Part), *input.UploadId)
return
}

8
weed/s3api/s3api_object_handlers_multipart.go

@ -401,12 +401,20 @@ func (s3a *S3ApiServer) PutObjectPartHandler(w http.ResponseWriter, r *http.Requ
}
destination := fmt.Sprintf("%s/%s%s", s3a.option.BucketsPath, bucket, object)
glog.V(2).Infof("PutObjectPart: bucket=%s, object=%s, uploadId=%s, partNumber=%d, size=%d",
bucket, object, uploadID, partID, r.ContentLength)
etag, errCode, sseType := s3a.putToFiler(r, uploadUrl, dataReader, destination, bucket, partID)
if errCode != s3err.ErrNone {
glog.Errorf("PutObjectPart: putToFiler failed with error code %v for bucket=%s, object=%s, partNumber=%d",
errCode, bucket, object, partID)
s3err.WriteErrorResponse(w, r, errCode)
return
}
glog.V(2).Infof("PutObjectPart: SUCCESS - bucket=%s, object=%s, partNumber=%d, etag=%s, sseType=%s",
bucket, object, partID, etag, sseType)
setEtag(w, etag)
// Set SSE response headers for multipart uploads

15
weed/s3api/s3api_object_handlers_put.go

@ -327,7 +327,11 @@ func (s3a *S3ApiServer) putToFiler(r *http.Request, uploadUrl string, dataReader
}
// Calculate ETag for S3 API response (hex format)
etag = fmt.Sprintf("%x", hash.Sum(nil))
md5Sum := hash.Sum(nil)
etag = fmt.Sprintf("%x", md5Sum)
glog.V(3).Infof("putToFiler: Uploading to volume - path=%s, size=%d, etag(hex)=%s, partNumber=%d",
filePath, len(data), etag, partNumber)
uploadOption := &operation.UploadOption{
UploadUrl: volumeUploadUrl,
@ -353,6 +357,9 @@ func (s3a *S3ApiServer) putToFiler(r *http.Request, uploadUrl string, dataReader
return "", s3err.ErrInternalError, ""
}
glog.V(3).Infof("putToFiler: Volume upload SUCCESS - fileId=%s, size=%d, md5(base64)=%s",
assignResult.FileId, uploadResult.Size, uploadResult.ContentMd5)
// Step 3: Create metadata entry
now := time.Now()
mimeType := r.Header.Get("Content-Type")
@ -378,6 +385,9 @@ func (s3a *S3ApiServer) putToFiler(r *http.Request, uploadUrl string, dataReader
CipherKey: uploadResult.CipherKey,
}
glog.V(3).Infof("putToFiler: Created FileChunk - fileId=%s, size=%d, etag(base64)=%s (for multipart ETag calc)",
fileChunk.FileId, fileChunk.Size, fileChunk.ETag)
// Decode MD5 from base64 to bytes for entry.Attributes.Md5
md5Bytes, md5Err := base64.StdEncoding.DecodeString(uploadResult.ContentMd5)
if md5Err != nil {
@ -464,6 +474,9 @@ func (s3a *S3ApiServer) putToFiler(r *http.Request, uploadUrl string, dataReader
return "", filerErrorToS3Error(createErr.Error()), ""
}
glog.V(2).Infof("putToFiler: Metadata saved SUCCESS - path=%s, etag(hex)=%s, size=%d, partNumber=%d",
filePath, etag, entry.Attributes.FileSize, partNumber)
BucketTrafficReceived(int64(uploadResult.Size), r)
// Return the SSE type determined by the unified handler

Loading…
Cancel
Save