Commit Graph

80 Commits

Author SHA1 Message Date
yhjiango
9eb43bb51c feat(objectnode): support post object
Signed-off-by: yhjiango <jiangyunhua@oppo.com>
2023-10-31 15:25:28 +08:00
yhjiango
26f6923afd feat(objectnode): support post object
Signed-off-by: yhjiango <jiangyunhua@oppo.com>
2023-10-31 11:03:49 +08:00
tangdeyi
831d9103fb fix(objectnode): fix delete object 5xx error
Signed-off-by: tangdeyi <tangdeyi@oppo.com>
2023-10-24 17:44:01 +08:00
tangdeyi
dd46c24873 fix(objectnode): fix read body entirely into memory and without an upper boundary
Signed-off-by: tangdeyi <tangdeyi@oppo.com>
2023-10-20 17:06:26 +08:00
tangdeyi
fcdeaebb69 fix(objectnode): lifecycle skip locked object
Signed-off-by: tangdeyi <tangdeyi@oppo.com>
2023-10-13 15:30:37 +08:00
tangdeyi
b24525a027 fix(objectnode): fix superfluous writeheader
Signed-off-by: tangdeyi <tangdeyi@oppo.com>
2023-08-31 16:36:14 +08:00
tangdeyi
14f0f67c73 feat(objnode): s3 api qos
Signed-off-by: tangdeyi <tangdeyi@oppo.com>
2023-08-31 16:36:14 +08:00
tangdeyi
adb37a02ee fix(objectnode): fix listobjectv1 err with delimiter
Signed-off-by: tangdeyi <tangdeyi@oppo.com>
2023-08-30 20:05:32 +08:00
yhjiango
4401624f96 feat(objectnode): s3 sts and signature auth
1. sts federation token
2. signature auth code refactor

Signed-off-by: yhjiango <jiangyunhua@oppo.com>
2023-08-30 20:05:32 +08:00
tangdeyi
d11e9142a2 feat(objectnode): object lock
Signed-off-by: tangdeyi <tangdeyi@oppo.com>
2023-08-30 20:05:32 +08:00
yhjiango
13dfb462f3 fix(objectnode): save the ACL of the object uploaded by the non-volume owner
Signed-off-by: yhjiango <jiangyunhua@oppo.com>
2023-08-09 14:01:52 +08:00
tangdeyi
7613a0fadb refactor(objectnode): refactor some redundant code
Signed-off-by: tangdeyi <deyitang94@gmail.com>
2023-08-09 14:01:52 +08:00
yhjiango
7339d6a6d7 feat(objectnode): reduce acl meta storage space usage
Signed-off-by: yhjiango <jiangyunhua@oppo.com>
2023-08-09 14:01:52 +08:00
tangdeyi
b036d1fa7c fix(objnode): fix code scan error
Signed-off-by: tangdeyi <tangdeyi@oppo.com>
2023-08-04 18:08:38 +08:00
tangdeyi
7df19f730a fix(objectnode): volume view cache
Signed-off-by: tangdeyi <tangdeyi@oppo.com>
2023-05-18 10:48:57 +08:00
tangdeyi
b27a7c4ba0 fix(objectnode): listobject bugfix
Signed-off-by: tangdeyi <tangdeyi@oppo.com>
2023-05-18 10:48:57 +08:00
yhjiango
2b6b00126a fix(objectnode): error adjustment in complete multipart
Signed-off-by: yhjiango <jiangyunhua@oppo.com>
2023-05-18 10:48:57 +08:00
yhjiango
0a4830dd93 fix(objectnode): fix the list multipart uploads and dir object inaccessible
Signed-off-by: yhjiango <jiangyunhua@oppo.com>
2023-05-18 10:48:57 +08:00
yhjiango
a56250817d fix(objectnode): fix the volume load call and error return
Signed-off-by: yhjiango <jiangyunhua@oppo.com>
2023-05-18 10:48:57 +08:00
tangdeyi
862fde677a fix(objectnode):
1. MultipartUpload with nonexistent uploadId return NoSuchUploadID
2. NoSuchBucket err handle

Signed-off-by: tangdeyi <tangdeyi@oppo.com>
2023-05-18 10:48:57 +08:00
yhjiango
e2112e892a fix(objectnode): fix the copy object
Signed-off-by: yhjiango <jiangyunhua@oppo.com>
2023-05-18 10:48:57 +08:00
yhjiango
e5989dec41 fix(objectnode): fix md5 check failure when uploading keys with all empty characters
Signed-off-by: yhjiango <jiangyunhua@oppo.com>
2023-05-18 10:48:57 +08:00
yhjiango
2011f3d4b1 fix(objectnode): fix the delete objects
Signed-off-by: yhjiango <jiangyunhua@oppo.com>
2023-05-18 10:48:57 +08:00
yhjiango
0affc88413 fix(objectnode): fully compatible with s3
Signed-off-by: yhjiango <jiangyunhua@oppo.com>
2023-05-18 10:48:57 +08:00
tangdeyi
831ea00d5d fix(objectnode): enhance s3 compatibility
1.CORS supports preflight request;
2.S3-compatible err reply;
3.Small parts upload bugfix;
4.Specific status code when panic;
5.UploadPartCopy;

Signed-off-by: tangdeyi <tangdeyi@oppo.com>
2023-05-18 10:48:57 +08:00
tangdeyi
9f0d7810a0 feature: bucket policy fully compatible with s3
Signed-off-by: tangdeyi <tangdeyi@oppo.com>
2023-05-18 10:48:57 +08:00
Patrick Wu
4e61b2801c fix: fix problem when copying object between different buckets
Signed-off-by: Patrick Wu <wuchunhuan@oppo.com>
2023-03-16 19:43:27 +08:00
Patrick Wu
c8bf55ae69 S3 bugfix
Signed-off-by: Patrick Wu <wuchunhuan@oppo.com>
2023-03-04 16:13:35 +08:00
Patrick Wu
6dfb9380c6 add meta cache for objectnode
Signed-off-by: Patrick Wu <wuchunhuan@oppo.com>
2023-03-04 16:13:35 +08:00
Huweicai
d116b7081b fix: header 'x-amz-copy-source' may be url encoded
Signed-off-by: Huweicai <i@huweicai.com>
2022-12-08 10:38:05 +08:00
leonrayang
9a30b9f884 update: update to CubeFS
Signed-off-by: leonrayang <chl696@sina.com>
2022-08-22 18:16:09 +08:00
leonrayang
2970e2c3d1 update. go import path change from chubaofs to cubefs
Signed-off-by: leonrayang <chl696@sina.com>
2022-01-25 18:17:02 +08:00
justice
10ebbd6760 fix: fix objectnode get object range 0-
Signed-off-by: justice <justice_103@126.com>
2022-01-04 11:42:29 +08:00
Shuoran Liu
1cb6e0bbbd fix: s3 get range zero to zero EOF
Signed-off-by: Shuoran Liu <shuoranliu@gmail.com>
2021-12-24 11:37:58 +08:00
Belhorma Bendebiche
972aa4cfcf fix: handle bytes=0- correctly in objectnode
Some clients (e.g. docker registry) send a get to fetch the whole file
by specifying `bytes=0-` as the range. In this case, ChubaoFS will set
the range to 0-0 and the `Content-Length` to 1 (upper - lower + 1). It
will then error out when writing the object, since it will write more
than the specified `Content-Length`.

As a simple fix, we can treat a rangeUpper of 0 the same as max, which
should result in correct behavior.

Signed-off-by: Belhorma Bendebiche <amro@bndb.sh>
2021-12-23 16:43:59 +08:00
zhuzhengyi001
4875a7009a Enhancement: add subdir authorized check for objectnode
Signed-off-by: zhuzhengyi001 <zhuzhengyi001@ke.com>
2021-08-27 19:29:23 +08:00
Mofei Zhang
fb9750c480 Fix: key encoding issue of S3 ListObjects API.
Parse parameter 'encoding-type' from request. It this parameter
specified and match with 'url', then encode content keys by using url
encoding function.

Signed-off-by: Mofei Zhang <mofei2816@gmail.com>
2020-09-27 18:20:27 +08:00
Shuoran Liu
1054c00fd8 feature: introduce subdir permissions
Originally the permission control for users are on volume level. This
commit introduces subdir level permission control.

Signed-off-by: Shuoran Liu <shuoranliu@gmail.com>
2020-08-14 20:48:05 +08:00
Mofei Zhang
dd45cd8ac5
Enhancement: error handling of ObjectNode
- 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>
2020-08-06 12:12:50 +08:00
yuboLee
ce4f466f0f Fix: some bugs about object tagging and bucket tagging
Signed-off-by: yuboLee <pangbolee@gmail.com>
2020-07-10 12:17:40 +08:00
yuboLee
9888905791 Fix: Change the logic of listing multipart uploads while just having upload id marker.
Signed-off-by: yuboLee <pangbolee@gmail.com>
2020-06-17 14:01:33 +08:00
wenjia322
5b587bf0ce enhancement: add 'Expires' and 'Cache-Control' when putObject/copyObject/getObject/headObject
Signed-off-by: wenjia322 <buaa1214wwj@126.com>
2020-05-29 10:57:13 +08:00
张墨飞
0bbb11014b
Enhancement: case sensitive content disposition header in response
Signed-off-by: 张墨飞 <zhangmofei@jd.com>
2020-05-21 17:39:20 +08:00
张墨飞
a87d8dcfcb Merge branch 'master' into pr/574 2020-05-21 17:37:36 +08:00
yuboLee
6eb165c895 Add support for header Content-Disposition
Signed-off-by: yuboLee <pangbolee@gmail.com>
2020-05-21 16:00:38 +08:00
Mofei Zhang
df4b7f9a42
Fix: parallel-safe issue in conn pool and metanode conn serve
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>
2020-05-21 12:28:18 +08:00
yuboLee
b74bf88b2f Fix: rewrite copy object function
Signed-off-by: yuboLee <pangbolee@gmail.com>
2020-05-19 11:19:02 +08:00
yuboLee
14d3d64ab4 Enhancement: add support for parallel download
Signed-off-by: yuboLee <pangbolee@gmail.com>
2020-05-08 17:39:05 +08:00
Mofei Zhang
01240bd867
Enhancement: partial support user-defined metadata
The PutObject interface supports setting user-defined metadata. The
GetObject and HeadObject interfaces can correctly return the stored
user-defined metadata.

Signed-off-by: Mofei Zhang <mofei2816@gmail.com>
2020-05-06 00:52:04 +08:00
Mofei Zhang
a4ec2c88d5
Enhancement: improve tagging storage and add tests
1. Add tests for tagging operations.
2. Support setup tagging when put an object.
3. Fix routing issue on DeleteObjectTagging interface.
4. Improve tagging encoding for storage.

Signed-off-by: Mofei Zhang <mofei2816@gmail.com>
2020-05-05 22:38:34 +08:00