|
|
|
@ -209,7 +209,7 @@ func (s3a *S3ApiServer) PutObjectHandler(w http.ResponseWriter, r *http.Request) |
|
|
|
dataReader = mimeDetect(r, dataReader) |
|
|
|
} |
|
|
|
|
|
|
|
etag, errCode, sseType := s3a.putToFiler(r, uploadUrl, dataReader, "", bucket, 1) |
|
|
|
etag, errCode, sseType := s3a.putToFiler(r, uploadUrl, dataReader, bucket, 1) |
|
|
|
|
|
|
|
if errCode != s3err.ErrNone { |
|
|
|
s3err.WriteErrorResponse(w, r, errCode) |
|
|
|
@ -229,7 +229,7 @@ func (s3a *S3ApiServer) PutObjectHandler(w http.ResponseWriter, r *http.Request) |
|
|
|
writeSuccessResponseEmpty(w, r) |
|
|
|
} |
|
|
|
|
|
|
|
func (s3a *S3ApiServer) putToFiler(r *http.Request, uploadUrl string, dataReader io.Reader, destination string, bucket string, partNumber int) (etag string, code s3err.ErrorCode, sseType string) { |
|
|
|
func (s3a *S3ApiServer) putToFiler(r *http.Request, uploadUrl string, dataReader io.Reader, bucket string, partNumber int) (etag string, code s3err.ErrorCode, sseType string) { |
|
|
|
// NEW OPTIMIZATION: Write directly to volume servers, bypassing filer proxy
|
|
|
|
// This eliminates the filer proxy overhead for PUT operations
|
|
|
|
|
|
|
|
@ -736,7 +736,7 @@ func (s3a *S3ApiServer) putSuspendedVersioningObject(r *http.Request, bucket, ob |
|
|
|
if isTestObj { |
|
|
|
glog.V(3).Infof("=== TESTOBJBAR: calling putToFiler ===") |
|
|
|
} |
|
|
|
etag, errCode, sseType = s3a.putToFiler(r, uploadUrl, body, "", bucket, 1) |
|
|
|
etag, errCode, sseType = s3a.putToFiler(r, uploadUrl, body, bucket, 1) |
|
|
|
if errCode != s3err.ErrNone { |
|
|
|
glog.Errorf("putSuspendedVersioningObject: failed to upload object: %v", errCode) |
|
|
|
return "", errCode, "" |
|
|
|
@ -891,7 +891,7 @@ func (s3a *S3ApiServer) putVersionedObject(r *http.Request, bucket, object strin |
|
|
|
|
|
|
|
glog.V(2).Infof("putVersionedObject: uploading %s/%s version %s to %s", bucket, object, versionId, versionUploadUrl) |
|
|
|
|
|
|
|
etag, errCode, sseType = s3a.putToFiler(r, versionUploadUrl, body, "", bucket, 1) |
|
|
|
etag, errCode, sseType = s3a.putToFiler(r, versionUploadUrl, body, bucket, 1) |
|
|
|
if errCode != s3err.ErrNone { |
|
|
|
glog.Errorf("putVersionedObject: failed to upload version: %v", errCode) |
|
|
|
return "", "", errCode, "" |
|
|
|
|