|
|
@ -61,13 +61,16 @@ func (s3a *S3ApiServer) PutObjectHandler(w http.ResponseWriter, r *http.Request) |
|
|
|
|
|
|
|
func (s3a *S3ApiServer) GetObjectHandler(w http.ResponseWriter, r *http.Request) { |
|
|
|
|
|
|
|
vars := mux.Vars(r) |
|
|
|
bucket := vars["bucket"] |
|
|
|
|
|
|
|
if strings.HasSuffix(r.URL.Path, "/") { |
|
|
|
writeErrorResponse(w, ErrNotImplemented, r.URL) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
destUrl := fmt.Sprintf("http://%s%s%s", |
|
|
|
s3a.option.Filer, s3a.option.BucketsPath, r.RequestURI) |
|
|
|
destUrl := fmt.Sprintf("http://%s%s/%s%s", |
|
|
|
s3a.option.Filer, s3a.option.BucketsPath, bucket, r.RequestURI) |
|
|
|
|
|
|
|
s3a.proxyToFiler(w, r, destUrl, passThroghResponse) |
|
|
|
|
|
|
@ -75,8 +78,11 @@ func (s3a *S3ApiServer) GetObjectHandler(w http.ResponseWriter, r *http.Request) |
|
|
|
|
|
|
|
func (s3a *S3ApiServer) HeadObjectHandler(w http.ResponseWriter, r *http.Request) { |
|
|
|
|
|
|
|
destUrl := fmt.Sprintf("http://%s%s%s", |
|
|
|
s3a.option.Filer, s3a.option.BucketsPath, r.RequestURI) |
|
|
|
vars := mux.Vars(r) |
|
|
|
bucket := vars["bucket"] |
|
|
|
|
|
|
|
destUrl := fmt.Sprintf("http://%s%s/%s%s", |
|
|
|
s3a.option.Filer, s3a.option.BucketsPath, bucket, r.RequestURI) |
|
|
|
|
|
|
|
s3a.proxyToFiler(w, r, destUrl, passThroghResponse) |
|
|
|
|
|
|
@ -84,8 +90,11 @@ func (s3a *S3ApiServer) HeadObjectHandler(w http.ResponseWriter, r *http.Request |
|
|
|
|
|
|
|
func (s3a *S3ApiServer) DeleteObjectHandler(w http.ResponseWriter, r *http.Request) { |
|
|
|
|
|
|
|
destUrl := fmt.Sprintf("http://%s%s%s", |
|
|
|
s3a.option.Filer, s3a.option.BucketsPath, r.RequestURI) |
|
|
|
vars := mux.Vars(r) |
|
|
|
bucket := vars["bucket"] |
|
|
|
|
|
|
|
destUrl := fmt.Sprintf("http://%s%s/%s%s", |
|
|
|
s3a.option.Filer, s3a.option.BucketsPath, bucket, r.RequestURI) |
|
|
|
|
|
|
|
s3a.proxyToFiler(w, r, destUrl, func(proxyResonse *http.Response, w http.ResponseWriter) { |
|
|
|
for k, v := range proxyResonse.Header { |
|
|
|