package handler import ( "net/http" "github.com/nspcc-dev/neofs-s3-gw/api" "go.uber.org/zap" ) func (h *handler) logAndSendError(w http.ResponseWriter, logText string, reqInfo *api.ReqInfo, err error, additional ...zap.Field) { fields := []zap.Field{zap.String("request_id", reqInfo.RequestID), zap.String("method", reqInfo.API), zap.String("bucket_name", reqInfo.BucketName), zap.String("object_name", reqInfo.ObjectName), zap.Error(err)} fields = append(fields, additional...) h.log.Error(logText, fields...) api.WriteErrorResponse(w, reqInfo, err) } func (h *handler) checkBucketOwner(r *http.Request, bucket string, header ...string) error { var expected string if len(header) == 0 { expected = r.Header.Get(api.AmzExpectedBucketOwner) } else { expected = header[0] } if len(expected) == 0 { return nil } bktInfo, err := h.obj.GetBucketInfo(r.Context(), bucket) if err != nil { return err } return checkOwner(bktInfo, expected) }