|
|
@ -13,6 +13,7 @@ import ( |
|
|
|
"github.com/chrislusf/weed-fs/go/images" |
|
|
|
"github.com/chrislusf/weed-fs/go/operation" |
|
|
|
"github.com/chrislusf/weed-fs/go/storage" |
|
|
|
"github.com/chrislusf/weed-fs/go/util" |
|
|
|
) |
|
|
|
|
|
|
|
var fileNameEscaper = strings.NewReplacer("\\", "\\\\", "\"", "\\\"") |
|
|
@ -38,7 +39,7 @@ func (vs *VolumeServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request) |
|
|
|
lookupResult, err := operation.Lookup(vs.GetMasterNode(), volumeId.String()) |
|
|
|
glog.V(2).Infoln("volume", volumeId, "found on", lookupResult, "error", err) |
|
|
|
if err == nil && len(lookupResult.Locations) > 0 { |
|
|
|
http.Redirect(w, r, "http://"+lookupResult.Locations[0].Url+r.URL.Path, http.StatusMovedPermanently) |
|
|
|
http.Redirect(w, r, util.NormalizeUrl(lookupResult.Locations[0].PublicUrl)+r.URL.Path, http.StatusMovedPermanently) |
|
|
|
} else { |
|
|
|
glog.V(2).Infoln("lookup error:", err, r.URL.Path) |
|
|
|
w.WriteHeader(http.StatusNotFound) |
|
|
|