- Response Http400 after got unexpected EOF error when reading data from
request connection.
- Fix ldflag issue from 'cli/build.sh'.
- Do not write failure status code if request connect closed by peer.
Signed-off-by: Mofei Zhang <mofei2816@gmail.com>
When initializing the volume, if the master explicitly responds that the
specified volume does not exist, it will not retry.
During the processing of the S3 request, both the signature and the
strategy are checked for the existence of the volume. NoSuchBucket
response is returned when the specified volume does not exist.
Signed-off-by: Mofei Zhang <mofei2816@gmail.com>
1. Fix: parallel-safe issue in conn pool and metanode conn serve
2. Fix: nil pointer issue when list parts for non-exist uploadId
3. Enhancement: validate read size while read from connnect.
4. Enhancement: clean up useless data on failure while upload part.
5. Enhancement: generate ETag if do not exist when listing.
6. Enhancement: include error message when formatting packet to string.
7. Enhancement: improve compatile with old version SDK.
8. Enhancement: success when retry add exist multipart part.
Signed-off-by: Mofei Zhang <mofei2816@gmail.com>
Signed-off-by: ๅผ ๅขจ้ฃ <zhangmofei@jd.com>
Http's Expect header is a special header. When nginx is used as the
reverse proxy in the front end of ObjectNode, nginx will process the
Expect header information in advance, send the http status code 100 to
the client, and will not forward this header information to ObjectNode.
At this time, if the client request uses the Expect header when signing,
it will cause the ObjectNode to verify the signature.
A workaround is used here to solve this problem. Add the following
configuration in Nginx:
proxy_set_header X-Forwarded-Expect $ http_Expect
In this way, nginx will not only automatically handle the Expect
handshake, but also send the original value of Expect to the ObjectNode
through X-Forwared-Expect. ObjectNode only needs to use the value of
X-Forwared-Expect.
Signed-off-by: Mofei Zhang <mofei2816@gmail.com>
Wrap and use the chunked reader from the "httputil" package which
provided by Go and provides a close mwthod.
Signed-off-by: Mofei Zhang <mofei2816@gmail.com>
Adjust the format of the license header information of the third-party
code used to make the format more compliant. The NOTICE file supplements
the third-party code NOTIC information and explains the use of the code.
Signed-off-by: Mofei Zhang <mofei2816@gmail.com>
Supports folder operations in the same way as Amazon AWS S3.
- Get folder meta info by HeadObject interface.
- Create folder when header specifies Content-Type as
application/directory and Content-Length as 0 on PutObject interface.
- Delete an empty folder by DeleteObject interface.
- The GetObject interface responds normally when the target is an
existing directory.
- Differentiate folders and files on the ListObject interface through the
CommonPrefix property (already supported).
Following object storage interface haven been implemented folder operations:
- HeadObject
- GetObject
- DeleteObject
- DeleteObjects
- ListObjects
- ListObjectsV2
Signed-off-by: Mofei Zhang <mofei2816@gmail.com>