This commit is contained in:
Chris Lu
2021-06-10 21:50:21 -07:00
parent 33b87244ef
commit 8b382a8209
19 changed files with 215 additions and 269 deletions

View File

@@ -32,28 +32,28 @@ func (s3a *S3ApiServer) CopyObjectHandler(w http.ResponseWriter, r *http.Request
dir, name := fullPath.DirAndName()
entry, err := s3a.getEntry(dir, name)
if err != nil {
writeErrorResponse(w, s3err.ErrInvalidCopySource, r)
s3err.WriteErrorResponse(w, s3err.ErrInvalidCopySource, r)
}
entry.Extended = weed_server.SaveAmzMetaData(r, entry.Extended, isReplace(r))
err = s3a.touch(dir, name, entry)
if err != nil {
writeErrorResponse(w, s3err.ErrInvalidCopySource, r)
s3err.WriteErrorResponse(w, s3err.ErrInvalidCopySource, r)
}
writeSuccessResponseXML(w, encodeResponse(CopyObjectResult{
writeSuccessResponseXML(w, CopyObjectResult{
ETag: fmt.Sprintf("%x", entry.Attributes.Md5),
LastModified: time.Now().UTC(),
}))
})
return
}
// If source object is empty or bucket is empty, reply back invalid copy source.
if srcObject == "" || srcBucket == "" {
writeErrorResponse(w, s3err.ErrInvalidCopySource, r)
s3err.WriteErrorResponse(w, s3err.ErrInvalidCopySource, r)
return
}
if srcBucket == dstBucket && srcObject == dstObject {
writeErrorResponse(w, s3err.ErrInvalidCopyDest, r)
s3err.WriteErrorResponse(w, s3err.ErrInvalidCopyDest, r)
return
}
@@ -64,7 +64,7 @@ func (s3a *S3ApiServer) CopyObjectHandler(w http.ResponseWriter, r *http.Request
_, _, resp, err := util.DownloadFile(srcUrl)
if err != nil {
writeErrorResponse(w, s3err.ErrInvalidCopySource, r)
s3err.WriteErrorResponse(w, s3err.ErrInvalidCopySource, r)
return
}
defer util.CloseResponse(resp)
@@ -73,7 +73,7 @@ func (s3a *S3ApiServer) CopyObjectHandler(w http.ResponseWriter, r *http.Request
etag, errCode := s3a.putToFiler(r, dstUrl, resp.Body)
if errCode != s3err.ErrNone {
writeErrorResponse(w, errCode, r)
s3err.WriteErrorResponse(w, errCode, r)
return
}
@@ -84,7 +84,7 @@ func (s3a *S3ApiServer) CopyObjectHandler(w http.ResponseWriter, r *http.Request
LastModified: time.Now().UTC(),
}
writeSuccessResponseXML(w, encodeResponse(response))
writeSuccessResponseXML(w, response)
}
@@ -117,7 +117,7 @@ func (s3a *S3ApiServer) CopyObjectPartHandler(w http.ResponseWriter, r *http.Req
srcBucket, srcObject := pathToBucketAndObject(cpSrcPath)
// If source object is empty or bucket is empty, reply back invalid copy source.
if srcObject == "" || srcBucket == "" {
writeErrorResponse(w, s3err.ErrInvalidCopySource, r)
s3err.WriteErrorResponse(w, s3err.ErrInvalidCopySource, r)
return
}
@@ -126,13 +126,13 @@ func (s3a *S3ApiServer) CopyObjectPartHandler(w http.ResponseWriter, r *http.Req
partID, err := strconv.Atoi(partIDString)
if err != nil {
writeErrorResponse(w, s3err.ErrInvalidPart, r)
s3err.WriteErrorResponse(w, s3err.ErrInvalidPart, r)
return
}
// check partID with maximum part ID for multipart objects
if partID > globalMaxPartID {
writeErrorResponse(w, s3err.ErrInvalidMaxParts, r)
s3err.WriteErrorResponse(w, s3err.ErrInvalidMaxParts, r)
return
}
@@ -145,7 +145,7 @@ func (s3a *S3ApiServer) CopyObjectPartHandler(w http.ResponseWriter, r *http.Req
dataReader, err := util.ReadUrlAsReaderCloser(srcUrl, rangeHeader)
if err != nil {
writeErrorResponse(w, s3err.ErrInvalidCopySource, r)
s3err.WriteErrorResponse(w, s3err.ErrInvalidCopySource, r)
return
}
defer dataReader.Close()
@@ -154,7 +154,7 @@ func (s3a *S3ApiServer) CopyObjectPartHandler(w http.ResponseWriter, r *http.Req
etag, errCode := s3a.putToFiler(r, dstUrl, dataReader)
if errCode != s3err.ErrNone {
writeErrorResponse(w, errCode, r)
s3err.WriteErrorResponse(w, errCode, r)
return
}
@@ -165,7 +165,7 @@ func (s3a *S3ApiServer) CopyObjectPartHandler(w http.ResponseWriter, r *http.Req
LastModified: time.Now().UTC(),
}
writeSuccessResponseXML(w, encodeResponse(response))
writeSuccessResponseXML(w, response)
}