HEAD /v1/objects/bucket-name/object-name
(w http.ResponseWriter, r *http.Request, origURLBck ...string)
| 1659 | |
| 1660 | // HEAD /v1/objects/bucket-name/object-name |
| 1661 | func (p *proxy) httpobjhead(w http.ResponseWriter, r *http.Request, origURLBck ...string) { |
| 1662 | bckArgs := allocInitBckArgs() |
| 1663 | { |
| 1664 | bckArgs.p = p |
| 1665 | bckArgs.w = w |
| 1666 | bckArgs.r = r |
| 1667 | bckArgs.perms = apc.AceObjHEAD |
| 1668 | bckArgs.createAIS = false |
| 1669 | bckArgs.headRemB = true |
| 1670 | } |
| 1671 | if len(origURLBck) > 0 { |
| 1672 | bckArgs.origURLBck = origURLBck[0] |
| 1673 | } |
| 1674 | bck, objName, err := p._parseReqTry(w, r, bckArgs) |
| 1675 | if err != nil { |
| 1676 | return |
| 1677 | } |
| 1678 | smap := p.owner.smap.get() |
| 1679 | si, err := cluster.HrwTarget(bck.MakeUname(objName), &smap.Smap) |
| 1680 | if err != nil { |
| 1681 | p.writeErr(w, r, err, http.StatusInternalServerError) |
| 1682 | return |
| 1683 | } |
| 1684 | if glog.FastV(4, glog.SmoduleAIS) { |
| 1685 | glog.Infof("%s %s/%s => %s", r.Method, bck.Name, objName, si) |
| 1686 | } |
| 1687 | redirectURL := p.redirectURL(r, si, time.Now() /*started*/, cmn.NetIntraControl) |
| 1688 | http.Redirect(w, r, redirectURL, http.StatusTemporaryRedirect) |
| 1689 | } |
| 1690 | |
| 1691 | // PATCH /v1/objects/bucket-name/object-name |
| 1692 | func (p *proxy) httpobjpatch(w http.ResponseWriter, r *http.Request) { |
no test coverage detected