diff options
Diffstat (limited to 'weed/s3api/s3api_object_handlers.go')
| -rw-r--r-- | weed/s3api/s3api_object_handlers.go | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/weed/s3api/s3api_object_handlers.go b/weed/s3api/s3api_object_handlers.go index f0d13af05..bd41a48fe 100644 --- a/weed/s3api/s3api_object_handlers.go +++ b/weed/s3api/s3api_object_handlers.go @@ -41,9 +41,15 @@ func (s3a *S3ApiServer) PutObjectHandler(w http.ResponseWriter, r *http.Request) return } + rAuthType := getRequestAuthType(r) + dataReader := r.Body + if rAuthType == authTypeStreamingSigned{ + dataReader = newSignV4ChunkedReader(r) + } + uploadUrl := fmt.Sprintf("http://%s%s/%s/%s?collection=%s", s3a.option.Filer, s3a.option.BucketsPath, bucket, object, bucket) - proxyReq, err := http.NewRequest("PUT", uploadUrl, r.Body) + proxyReq, err := http.NewRequest("PUT", uploadUrl, dataReader) if err != nil { glog.Errorf("NewRequest %s: %v", uploadUrl, err) |
