diff options
Diffstat (limited to 'weed/s3api/s3api_object_handlers.go')
| -rw-r--r-- | weed/s3api/s3api_object_handlers.go | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/weed/s3api/s3api_object_handlers.go b/weed/s3api/s3api_object_handlers.go index 25647538b..5da88bf77 100644 --- a/weed/s3api/s3api_object_handlers.go +++ b/weed/s3api/s3api_object_handlers.go @@ -246,6 +246,13 @@ func (s3a *S3ApiServer) GetObjectHandler(w http.ResponseWriter, r *http.Request) return // Directory object request was handled } + // Check conditional headers for read operations + if errCode := s3a.checkConditionalHeadersForReads(r, bucket, object); errCode != s3err.ErrNone { + glog.V(3).Infof("GetObjectHandler: Conditional header check failed for %s/%s with error %v", bucket, object, errCode) + s3err.WriteErrorResponse(w, r, errCode) + return + } + // Check for specific version ID in query parameters versionId := r.URL.Query().Get("versionId") @@ -378,6 +385,13 @@ func (s3a *S3ApiServer) HeadObjectHandler(w http.ResponseWriter, r *http.Request return // Directory object request was handled } + // Check conditional headers for read operations + if errCode := s3a.checkConditionalHeadersForReads(r, bucket, object); errCode != s3err.ErrNone { + glog.V(3).Infof("HeadObjectHandler: Conditional header check failed for %s/%s with error %v", bucket, object, errCode) + s3err.WriteErrorResponse(w, r, errCode) + return + } + // Check for specific version ID in query parameters versionId := r.URL.Query().Get("versionId") |
