diff options
| author | Chris Lu <chrislusf@users.noreply.github.com> | 2020-07-27 10:35:37 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-27 10:35:37 -0700 |
| commit | bfa07af326a7ae2a015a7dd1235b1c6b10966d2c (patch) | |
| tree | 95f0ecb6c96f8b54017ab80a02d18684b0f81742 | |
| parent | 37e964d4bd60a9dd792a9cc24f05eaa05d3766f2 (diff) | |
| parent | 92c32f9d46c6cf817ca447b20c4919dfd7978624 (diff) | |
| download | seaweedfs-bfa07af326a7ae2a015a7dd1235b1c6b10966d2c.tar.xz seaweedfs-bfa07af326a7ae2a015a7dd1235b1c6b10966d2c.zip | |
Merge pull request #1404 from hilimd/master
S3 PutObject: fix create folder bug
| -rw-r--r-- | weed/s3api/s3api_object_handlers.go | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/weed/s3api/s3api_object_handlers.go b/weed/s3api/s3api_object_handlers.go index d62dbff3d..9773add81 100644 --- a/weed/s3api/s3api_object_handlers.go +++ b/weed/s3api/s3api_object_handlers.go @@ -57,16 +57,23 @@ func (s3a *S3ApiServer) PutObjectHandler(w http.ResponseWriter, r *http.Request) } defer dataReader.Close() - uploadUrl := fmt.Sprintf("http://%s%s/%s%s", s3a.option.Filer, s3a.option.BucketsPath, bucket, object) + if strings.HasSuffix(object, "/") { + if err := s3a.mkdir(s3a.option.BucketsPath, bucket+object, nil); err != nil { + writeErrorResponse(w, ErrInternalError, r.URL) + return + } + } else { + uploadUrl := fmt.Sprintf("http://%s%s/%s%s", s3a.option.Filer, s3a.option.BucketsPath, bucket, object) - etag, errCode := s3a.putToFiler(r, uploadUrl, dataReader) + etag, errCode := s3a.putToFiler(r, uploadUrl, dataReader) - if errCode != ErrNone { - writeErrorResponse(w, errCode, r.URL) - return - } + if errCode != ErrNone { + writeErrorResponse(w, errCode, r.URL) + return + } - setEtag(w, etag) + setEtag(w, etag) + } writeSuccessResponseEmpty(w) } |
