1. Fix the problem of returning 500 internal errors in PutBucketPolicy.
2. Add related parameter verification in GetBucketLocation.
Signed-off-by: yhjiango <jiangyunhua@oppo.com>
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>
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>
Added compatibility with 1.5 version of credential information for
signature verification and policy check of s3 interface.
In version 1.5, each volume has its own access key, which is stored
in the view information center of the volume to which it belongs.
In version 2.0, user security and authorization are added. Each user
has their own access key, and users can use this access key to operate
all their own volumes.
Increase the compatibility with the old version authentication method
to reduce the impact of online version 1.5 cluster upgrade to 2.0 on
online services.
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>
The blacklist mechanism has been added to the user store and volume
manager in the object node to solve the adverse effect of a large number
of invalid requests on system performance in a short period of time.
Stream requests to the user store and volume manager in the object node
in a hash bucket manner, reducing the blocking caused by read and write
locks under concurrency.
Abstracted the user store and added an implementation that does not
cache user information. This is enabled through the "strict"
configuration to provide sufficient real-time performance with cluster
information during interface compatibility testing.
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>
Enhancement: validate user policy when mount volume.
Enhancement: when an object node loads a volume, different volumes do not block each other.
Enhancement: when checking policies, check user permissions before checking volume policies to reduce the overhead of loading volumes.
Enhancement: release connection pool when releasing meta wrapper resources.
Enhancement: the object node automatically releases the deleted volume.
Fix: response when deleting non-existing files using Object Storage
Interface.
Fix: url parameter parsing issue of signature algorithm V2.
Signed-off-by: Mofei Zhang <mofei2816@gmail.com>
Add: list user with filter command for CLI
Enhancement: performance of ListBuckets API
Fix: action identify issue
Signed-off-by: Mofei Zhang <mofei2816@gmail.com>