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
35 lines
812 B
Python
35 lines
812 B
Python
# Copyright (c) 2014 OpenStack Foundation.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
# implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
|
|
class S3Exception(Exception):
|
|
pass
|
|
|
|
|
|
class NotS3Request(S3Exception):
|
|
pass
|
|
|
|
|
|
class BadSwiftRequest(S3Exception):
|
|
pass
|
|
|
|
|
|
class ACLError(S3Exception):
|
|
pass
|
|
|
|
|
|
class InvalidSubresource(S3Exception):
|
|
pass
|