acl: add preliminary support for S3 ACL

Currently, Swift3 sets and retrieves Swift ACLs for S3 ACL requests.  However,
S3 ACL is too different from Swift ACL to implement the below reference.
  http://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html
With this patch, Swift3 uses its own metadata for ACL
(e.g. X-Container-Sysmeta-Swift3-Acl) to achieve the best S3 compatibility.
This patch only embeds the S3 ACL into the Swift metadata.  The swift3
middleware does not use it for S3 requests yet; this will be addressed later.

Change-Id: I4522910b6b3a0066f24caa98727fdeb85837e42b
This commit is contained in:
Masaki Tsukuda
2014-11-06 19:35:55 +09:00
parent 208eec3720
commit 12efe66170
14 changed files with 916 additions and 44 deletions

View File

@@ -28,3 +28,7 @@ class BadSwiftRequest(S3Exception):
class ACLError(S3Exception):
pass
class InvalidSubresource(S3Exception):
pass