[#490] Optimize GetObjectTaggingAndLock

Signed-off-by: Denis Kirillov <denis@nspcc.ru>
This commit is contained in:
Denis Kirillov 2022-06-28 16:35:05 +03:00 committed by Alex Vanin
parent 206a7aa395
commit 88c392d024
10 changed files with 52 additions and 48 deletions

View file

@ -66,12 +66,7 @@ var validAttributes = map[string]struct{}{
}
func (h *handler) GetObjectAttributesHandler(w http.ResponseWriter, r *http.Request) {
var (
err error
info *data.ObjectInfo
reqInfo = api.GetReqInfo(r.Context())
)
reqInfo := api.GetReqInfo(r.Context())
params, err := parseGetObjectAttributeArgs(r)
if err != nil {
@ -91,10 +86,12 @@ func (h *handler) GetObjectAttributesHandler(w http.ResponseWriter, r *http.Requ
VersionID: params.VersionID,
}
if info, err = h.obj.GetObjectInfo(r.Context(), p); err != nil {
extendedInfo, err := h.obj.GetObjectInfo(r.Context(), p)
if err != nil {
h.logAndSendError(w, "could not fetch object info", reqInfo, err)
return
}
info := extendedInfo.ObjectInfo
if err = checkPreconditions(info, params.Conditional); err != nil {
h.logAndSendError(w, "precondition failed", reqInfo, err)