diff --git a/CHANGELOG.md b/CHANGELOG.md index 663d2c0..d31bcba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## NOT RELEASED +### Added + +- AWS api-change: Amazon S3 introduces support for AWS Dedicated Local Zones + ## 2.6.0 ### Added diff --git a/composer.json b/composer.json index 2da7211..cb01e09 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,7 @@ }, "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.7-dev" } } } diff --git a/src/Enum/DataRedundancy.php b/src/Enum/DataRedundancy.php index 9846d3c..b11582c 100644 --- a/src/Enum/DataRedundancy.php +++ b/src/Enum/DataRedundancy.php @@ -5,11 +5,13 @@ final class DataRedundancy { public const SINGLE_AVAILABILITY_ZONE = 'SingleAvailabilityZone'; + public const SINGLE_LOCAL_ZONE = 'SingleLocalZone'; public static function exists(string $value): bool { return isset([ self::SINGLE_AVAILABILITY_ZONE => true, + self::SINGLE_LOCAL_ZONE => true, ][$value]); } } diff --git a/src/Enum/LocationType.php b/src/Enum/LocationType.php index b5769c3..c24a229 100644 --- a/src/Enum/LocationType.php +++ b/src/Enum/LocationType.php @@ -5,11 +5,13 @@ final class LocationType { public const AVAILABILITY_ZONE = 'AvailabilityZone'; + public const LOCAL_ZONE = 'LocalZone'; public static function exists(string $value): bool { return isset([ self::AVAILABILITY_ZONE => true, + self::LOCAL_ZONE => true, ][$value]); } } diff --git a/src/Input/AbortMultipartUploadRequest.php b/src/Input/AbortMultipartUploadRequest.php index 4c4310a..b1e6d2f 100644 --- a/src/Input/AbortMultipartUploadRequest.php +++ b/src/Input/AbortMultipartUploadRequest.php @@ -14,10 +14,11 @@ final class AbortMultipartUploadRequest extends Input * The bucket name to which the upload was taking place. * * **Directory buckets** - When you use this operation with a directory bucket, you must use virtual-hosted-style - * requests in the format `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. Path-style requests are not - * supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format - * `*bucket_base_name*--*az-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information about - * bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User Guide*. + * requests in the format `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. Path-style requests are not + * supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names + * must follow the format `*bucket-base-name*--*zone-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). + * For information about bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User + * Guide*. * * **Access points** - When you use this action with an access point, you must provide the alias of the access point in * place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests diff --git a/src/Input/CompleteMultipartUploadRequest.php b/src/Input/CompleteMultipartUploadRequest.php index 0694643..ffce436 100644 --- a/src/Input/CompleteMultipartUploadRequest.php +++ b/src/Input/CompleteMultipartUploadRequest.php @@ -15,10 +15,11 @@ final class CompleteMultipartUploadRequest extends Input * Name of the bucket to which the multipart upload was initiated. * * **Directory buckets** - When you use this operation with a directory bucket, you must use virtual-hosted-style - * requests in the format `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. Path-style requests are not - * supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format - * `*bucket_base_name*--*az-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information about - * bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User Guide*. + * requests in the format `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. Path-style requests are not + * supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names + * must follow the format `*bucket-base-name*--*zone-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). + * For information about bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User + * Guide*. * * **Access points** - When you use this action with an access point, you must provide the alias of the access point in * place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests diff --git a/src/Input/CopyObjectRequest.php b/src/Input/CopyObjectRequest.php index c0017df..e06544a 100644 --- a/src/Input/CopyObjectRequest.php +++ b/src/Input/CopyObjectRequest.php @@ -48,10 +48,15 @@ final class CopyObjectRequest extends Input * The name of the destination bucket. * * **Directory buckets** - When you use this operation with a directory bucket, you must use virtual-hosted-style - * requests in the format `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. Path-style requests are not - * supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format - * `*bucket_base_name*--*az-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information about - * bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User Guide*. + * requests in the format `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. Path-style requests are not + * supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names + * must follow the format `*bucket-base-name*--*zone-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). + * For information about bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User + * Guide*. + * + * > Copying objects across different Amazon Web Services Regions isn't supported when the source or destination bucket + * > is in Amazon Web Services Local Zones. The source and destination buckets must have the same parent Amazon Web + * > Services Region. Otherwise, you get an HTTP `400 Bad Request` error with the error code `InvalidRequest`. * * **Access points** - When you use this action with an access point, you must provide the alias of the access point in * place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests diff --git a/src/Input/CreateBucketRequest.php b/src/Input/CreateBucketRequest.php index b901983..fe527b3 100644 --- a/src/Input/CreateBucketRequest.php +++ b/src/Input/CreateBucketRequest.php @@ -28,10 +28,11 @@ final class CreateBucketRequest extends Input * *Amazon S3 User Guide*. * * **Directory buckets ** - When you use this operation with a directory bucket, you must use path-style requests in the - * format `https://s3express-control.*region_code*.amazonaws.com/*bucket-name*`. Virtual-hosted-style requests aren't - * supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must also follow the - * format `*bucket_base_name*--*az_id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information - * about bucket naming restrictions, see Directory bucket naming rules [^2] in the *Amazon S3 User Guide* + * format `https://s3express-control.*region-code*.amazonaws.com/*bucket-name*`. Virtual-hosted-style requests aren't + * supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names + * must also follow the format `*bucket-base-name*--*zone-id*--x-s3` (for example, + * `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information about bucket naming restrictions, see Directory bucket + * naming rules [^2] in the *Amazon S3 User Guide* * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html diff --git a/src/Input/CreateMultipartUploadRequest.php b/src/Input/CreateMultipartUploadRequest.php index 443f971..0dc7c0d 100644 --- a/src/Input/CreateMultipartUploadRequest.php +++ b/src/Input/CreateMultipartUploadRequest.php @@ -42,10 +42,11 @@ final class CreateMultipartUploadRequest extends Input * The name of the bucket where the multipart upload is initiated and where the object is uploaded. * * **Directory buckets** - When you use this operation with a directory bucket, you must use virtual-hosted-style - * requests in the format `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. Path-style requests are not - * supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format - * `*bucket_base_name*--*az-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information about - * bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User Guide*. + * requests in the format `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. Path-style requests are not + * supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names + * must follow the format `*bucket-base-name*--*zone-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). + * For information about bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User + * Guide*. * * **Access points** - When you use this action with an access point, you must provide the alias of the access point in * place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests diff --git a/src/Input/DeleteBucketRequest.php b/src/Input/DeleteBucketRequest.php index 08ac659..e25ebbc 100644 --- a/src/Input/DeleteBucketRequest.php +++ b/src/Input/DeleteBucketRequest.php @@ -13,10 +13,11 @@ final class DeleteBucketRequest extends Input * Specifies the bucket being deleted. * * **Directory buckets ** - When you use this operation with a directory bucket, you must use path-style requests in the - * format `https://s3express-control.*region_code*.amazonaws.com/*bucket-name*`. Virtual-hosted-style requests aren't - * supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must also follow the - * format `*bucket_base_name*--*az_id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information - * about bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User Guide* + * format `https://s3express-control.*region-code*.amazonaws.com/*bucket-name*`. Virtual-hosted-style requests aren't + * supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names + * must also follow the format `*bucket-base-name*--*zone-id*--x-s3` (for example, + * `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information about bucket naming restrictions, see Directory bucket + * naming rules [^1] in the *Amazon S3 User Guide* * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html * diff --git a/src/Input/DeleteObjectRequest.php b/src/Input/DeleteObjectRequest.php index 59ad115..4f72e34 100644 --- a/src/Input/DeleteObjectRequest.php +++ b/src/Input/DeleteObjectRequest.php @@ -14,10 +14,11 @@ final class DeleteObjectRequest extends Input * The bucket name of the bucket containing the object. * * **Directory buckets** - When you use this operation with a directory bucket, you must use virtual-hosted-style - * requests in the format `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. Path-style requests are not - * supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format - * `*bucket_base_name*--*az-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information about - * bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User Guide*. + * requests in the format `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. Path-style requests are not + * supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names + * must follow the format `*bucket-base-name*--*zone-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). + * For information about bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User + * Guide*. * * **Access points** - When you use this action with an access point, you must provide the alias of the access point in * place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests diff --git a/src/Input/DeleteObjectsRequest.php b/src/Input/DeleteObjectsRequest.php index a08f8c3..a49bd9c 100644 --- a/src/Input/DeleteObjectsRequest.php +++ b/src/Input/DeleteObjectsRequest.php @@ -16,10 +16,11 @@ final class DeleteObjectsRequest extends Input * The bucket name containing the objects to delete. * * **Directory buckets** - When you use this operation with a directory bucket, you must use virtual-hosted-style - * requests in the format `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. Path-style requests are not - * supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format - * `*bucket_base_name*--*az-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information about - * bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User Guide*. + * requests in the format `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. Path-style requests are not + * supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names + * must follow the format `*bucket-base-name*--*zone-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). + * For information about bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User + * Guide*. * * **Access points** - When you use this action with an access point, you must provide the alias of the access point in * place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests diff --git a/src/Input/GetBucketEncryptionRequest.php b/src/Input/GetBucketEncryptionRequest.php index 3c14d22..610bd92 100644 --- a/src/Input/GetBucketEncryptionRequest.php +++ b/src/Input/GetBucketEncryptionRequest.php @@ -13,10 +13,11 @@ final class GetBucketEncryptionRequest extends Input * The name of the bucket from which the server-side encryption configuration is retrieved. * * **Directory buckets ** - When you use this operation with a directory bucket, you must use path-style requests in the - * format `https://s3express-control.*region_code*.amazonaws.com/*bucket-name*`. Virtual-hosted-style requests aren't - * supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must also follow the - * format `*bucket_base_name*--*az_id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information - * about bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User Guide* + * format `https://s3express-control.*region-code*.amazonaws.com/*bucket-name*`. Virtual-hosted-style requests aren't + * supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names + * must also follow the format `*bucket-base-name*--*zone-id*--x-s3` (for example, + * `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information about bucket naming restrictions, see Directory bucket + * naming rules [^1] in the *Amazon S3 User Guide* * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html * diff --git a/src/Input/GetObjectRequest.php b/src/Input/GetObjectRequest.php index c30ffea..5e4e276 100644 --- a/src/Input/GetObjectRequest.php +++ b/src/Input/GetObjectRequest.php @@ -15,10 +15,11 @@ final class GetObjectRequest extends Input * The bucket name containing the object. * * **Directory buckets** - When you use this operation with a directory bucket, you must use virtual-hosted-style - * requests in the format `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. Path-style requests are not - * supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format - * `*bucket_base_name*--*az-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information about - * bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User Guide*. + * requests in the format `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. Path-style requests are not + * supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names + * must follow the format `*bucket-base-name*--*zone-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). + * For information about bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User + * Guide*. * * **Access points** - When you use this action with an access point, you must provide the alias of the access point in * place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests diff --git a/src/Input/HeadBucketRequest.php b/src/Input/HeadBucketRequest.php index 0069f18..76ffaf5 100644 --- a/src/Input/HeadBucketRequest.php +++ b/src/Input/HeadBucketRequest.php @@ -13,10 +13,11 @@ final class HeadBucketRequest extends Input * The bucket name. * * **Directory buckets** - When you use this operation with a directory bucket, you must use virtual-hosted-style - * requests in the format `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. Path-style requests are not - * supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format - * `*bucket_base_name*--*az-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information about - * bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User Guide*. + * requests in the format `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. Path-style requests are not + * supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names + * must follow the format `*bucket-base-name*--*zone-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). + * For information about bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User + * Guide*. * * **Access points** - When you use this action with an access point, you must provide the alias of the access point in * place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests diff --git a/src/Input/HeadObjectRequest.php b/src/Input/HeadObjectRequest.php index 7f33302..8113660 100644 --- a/src/Input/HeadObjectRequest.php +++ b/src/Input/HeadObjectRequest.php @@ -15,10 +15,11 @@ final class HeadObjectRequest extends Input * The name of the bucket that contains the object. * * **Directory buckets** - When you use this operation with a directory bucket, you must use virtual-hosted-style - * requests in the format `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. Path-style requests are not - * supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format - * `*bucket_base_name*--*az-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information about - * bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User Guide*. + * requests in the format `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. Path-style requests are not + * supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names + * must follow the format `*bucket-base-name*--*zone-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). + * For information about bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User + * Guide*. * * **Access points** - When you use this action with an access point, you must provide the alias of the access point in * place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests diff --git a/src/Input/ListMultipartUploadsRequest.php b/src/Input/ListMultipartUploadsRequest.php index 752293a..2e38ffb 100644 --- a/src/Input/ListMultipartUploadsRequest.php +++ b/src/Input/ListMultipartUploadsRequest.php @@ -15,10 +15,11 @@ final class ListMultipartUploadsRequest extends Input * The name of the bucket to which the multipart upload was initiated. * * **Directory buckets** - When you use this operation with a directory bucket, you must use virtual-hosted-style - * requests in the format `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. Path-style requests are not - * supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format - * `*bucket_base_name*--*az-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information about - * bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User Guide*. + * requests in the format `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. Path-style requests are not + * supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names + * must follow the format `*bucket-base-name*--*zone-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). + * For information about bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User + * Guide*. * * **Access points** - When you use this action with an access point, you must provide the alias of the access point in * place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests diff --git a/src/Input/ListObjectsV2Request.php b/src/Input/ListObjectsV2Request.php index 9767702..857d086 100644 --- a/src/Input/ListObjectsV2Request.php +++ b/src/Input/ListObjectsV2Request.php @@ -14,10 +14,11 @@ final class ListObjectsV2Request extends Input { /** * **Directory buckets** - When you use this operation with a directory bucket, you must use virtual-hosted-style - * requests in the format `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. Path-style requests are not - * supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format - * `*bucket_base_name*--*az-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information about - * bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User Guide*. + * requests in the format `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. Path-style requests are not + * supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names + * must follow the format `*bucket-base-name*--*zone-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). + * For information about bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User + * Guide*. * * **Access points** - When you use this action with an access point, you must provide the alias of the access point in * place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests diff --git a/src/Input/ListPartsRequest.php b/src/Input/ListPartsRequest.php index 0e8cadc..f3bc134 100644 --- a/src/Input/ListPartsRequest.php +++ b/src/Input/ListPartsRequest.php @@ -14,10 +14,11 @@ final class ListPartsRequest extends Input * The name of the bucket to which the parts are being uploaded. * * **Directory buckets** - When you use this operation with a directory bucket, you must use virtual-hosted-style - * requests in the format `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. Path-style requests are not - * supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format - * `*bucket_base_name*--*az-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information about - * bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User Guide*. + * requests in the format `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. Path-style requests are not + * supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names + * must follow the format `*bucket-base-name*--*zone-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). + * For information about bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User + * Guide*. * * **Access points** - When you use this action with an access point, you must provide the alias of the access point in * place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests diff --git a/src/Input/PutObjectRequest.php b/src/Input/PutObjectRequest.php index e9195c6..9e9a2a0 100644 --- a/src/Input/PutObjectRequest.php +++ b/src/Input/PutObjectRequest.php @@ -56,10 +56,11 @@ final class PutObjectRequest extends Input * The bucket name to which the PUT action was initiated. * * **Directory buckets** - When you use this operation with a directory bucket, you must use virtual-hosted-style - * requests in the format `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. Path-style requests are not - * supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format - * `*bucket_base_name*--*az-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information about - * bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User Guide*. + * requests in the format `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. Path-style requests are not + * supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names + * must follow the format `*bucket-base-name*--*zone-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). + * For information about bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User + * Guide*. * * **Access points** - When you use this action with an access point, you must provide the alias of the access point in * place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests diff --git a/src/Input/UploadPartCopyRequest.php b/src/Input/UploadPartCopyRequest.php index 137b111..04bd4db 100644 --- a/src/Input/UploadPartCopyRequest.php +++ b/src/Input/UploadPartCopyRequest.php @@ -14,10 +14,15 @@ final class UploadPartCopyRequest extends Input * The bucket name. * * **Directory buckets** - When you use this operation with a directory bucket, you must use virtual-hosted-style - * requests in the format `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. Path-style requests are not - * supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format - * `*bucket_base_name*--*az-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information about - * bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User Guide*. + * requests in the format `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. Path-style requests are not + * supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names + * must follow the format `*bucket-base-name*--*zone-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). + * For information about bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User + * Guide*. + * + * > Copying objects across different Amazon Web Services Regions isn't supported when the source or destination bucket + * > is in Amazon Web Services Local Zones. The source and destination buckets must have the same parent Amazon Web + * > Services Region. Otherwise, you get an HTTP `400 Bad Request` error with the error code `InvalidRequest`. * * **Access points** - When you use this action with an access point, you must provide the alias of the access point in * place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests diff --git a/src/Input/UploadPartRequest.php b/src/Input/UploadPartRequest.php index d3edb76..cc4ca4f 100644 --- a/src/Input/UploadPartRequest.php +++ b/src/Input/UploadPartRequest.php @@ -22,10 +22,11 @@ final class UploadPartRequest extends Input * The name of the bucket to which the multipart upload was initiated. * * **Directory buckets** - When you use this operation with a directory bucket, you must use virtual-hosted-style - * requests in the format `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. Path-style requests are not - * supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format - * `*bucket_base_name*--*az-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information about - * bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User Guide*. + * requests in the format `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. Path-style requests are not + * supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names + * must follow the format `*bucket-base-name*--*zone-id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). + * For information about bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User + * Guide*. * * **Access points** - When you use this action with an access point, you must provide the alias of the access point in * place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests diff --git a/src/Result/CopyObjectOutput.php b/src/Result/CopyObjectOutput.php index 86ac082..64fbecf 100644 --- a/src/Result/CopyObjectOutput.php +++ b/src/Result/CopyObjectOutput.php @@ -20,7 +20,8 @@ class CopyObjectOutput extends Result /** * If the object expiration is configured, the response includes this header. * - * > This functionality is not supported for directory buckets. + * > Object expiration information is not returned in directory buckets and this header returns the value + * > "`NotImplemented`" in all responses for directory buckets. * * @var string|null */ diff --git a/src/Result/GetObjectOutput.php b/src/Result/GetObjectOutput.php index a0b9159..7e3a1c9 100644 --- a/src/Result/GetObjectOutput.php +++ b/src/Result/GetObjectOutput.php @@ -47,7 +47,8 @@ class GetObjectOutput extends Result * header. It includes the `expiry-date` and `rule-id` key-value pairs providing object expiration information. The * value of the `rule-id` is URL-encoded. * - * > This functionality is not supported for directory buckets. + * > Object expiration information is not returned in directory buckets and this header returns the value + * > "`NotImplemented`" in all responses for directory buckets. * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html * diff --git a/src/Result/HeadObjectOutput.php b/src/Result/HeadObjectOutput.php index 8ffcee1..fe91fce 100644 --- a/src/Result/HeadObjectOutput.php +++ b/src/Result/HeadObjectOutput.php @@ -36,7 +36,8 @@ class HeadObjectOutput extends Result * header. It includes the `expiry-date` and `rule-id` key-value pairs providing object expiration information. The * value of the `rule-id` is URL-encoded. * - * > This functionality is not supported for directory buckets. + * > Object expiration information is not returned in directory buckets and this header returns the value + * > "`NotImplemented`" in all responses for directory buckets. * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html * diff --git a/src/Result/PutObjectOutput.php b/src/Result/PutObjectOutput.php index 704d459..ed76da9 100644 --- a/src/Result/PutObjectOutput.php +++ b/src/Result/PutObjectOutput.php @@ -14,7 +14,8 @@ class PutObjectOutput extends Result * Guide*, the response includes this header. It includes the `expiry-date` and `rule-id` key-value pairs that provide * information about object expiration. The value of the `rule-id` is URL-encoded. * - * > This functionality is not supported for directory buckets. + * > Object expiration information is not returned in directory buckets and this header returns the value + * > "`NotImplemented`" in all responses for directory buckets. * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html * diff --git a/src/S3Client.php b/src/S3Client.php index ee7307e..95c8d42 100644 --- a/src/S3Client.php +++ b/src/S3Client.php @@ -119,45 +119,49 @@ class S3Client extends AbstractApi * > the `AbortMultipartUpload` operation to abort all the in-progress multipart uploads. * > - **Directory buckets** - For directory buckets, you must make requests for this API operation to the Zonal * > endpoint. These endpoints support virtual-hosted-style requests in the format - * > `https://*bucket_name*.s3express-*az_id*.*region*.amazonaws.com/*key-name*`. Path-style requests are not - * > supported. For more information, see Regional and Zonal endpoints [^2] in the *Amazon S3 User Guide*. + * > `https://*bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com/*key-name*`. Path-style requests are not + * > supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for + * > directory buckets in Availability Zones [^2] in the *Amazon S3 User Guide*. For more information about endpoints + * > in Local Zones, see Available Local Zone for directory buckets [^3] in the *Amazon S3 User Guide*. * > * * - `Permissions`: * * - **General purpose bucket permissions** - For information about permissions required to use the multipart upload, - * see Multipart Upload and Permissions [^3] in the *Amazon S3 User Guide*. + * see Multipart Upload and Permissions [^4] in the *Amazon S3 User Guide*. * - **Directory bucket permissions** - To grant access to this API operation on a directory bucket, we recommend that - * you use the `CreateSession` [^4] API operation for session-based authorization. Specifically, you grant the + * you use the `CreateSession` [^5] API operation for session-based authorization. Specifically, you grant the * `s3express:CreateSession` permission to the directory bucket in a bucket policy or an IAM identity-based policy. * Then, you make the `CreateSession` API call on the bucket to obtain a session token. With the session token in * your request header, you can make API requests to this operation. After the session token expires, you make * another `CreateSession` API call to generate a new session token for use. Amazon Web Services CLI or SDKs create * session and refresh the session token automatically to avoid service interruptions when a session expires. For - * more information about authorization, see `CreateSession` [^5]. + * more information about authorization, see `CreateSession` [^6]. * * - `HTTP Host header syntax`: * - * **Directory buckets ** - The HTTP Host header syntax is `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. + * **Directory buckets ** - The HTTP Host header syntax is + * `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. * * The following operations are related to `AbortMultipartUpload`: * - * - CreateMultipartUpload [^6] - * - UploadPart [^7] - * - CompleteMultipartUpload [^8] - * - ListParts [^9] - * - ListMultipartUploads [^10] + * - CreateMultipartUpload [^7] + * - UploadPart [^8] + * - CompleteMultipartUpload [^9] + * - ListParts [^10] + * - ListMultipartUploads [^11] * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html - * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html - * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html + * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html - * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html - * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html - * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html - * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html - * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html + * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html + * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html + * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html + * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html + * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html * * @see http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadAbort.html * @see https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html @@ -255,25 +259,27 @@ public function bucketNotExists($input): BucketNotExistsWaiter * * > **Directory buckets** - For directory buckets, you must make requests for this API operation to the Zonal endpoint. * > These endpoints support virtual-hosted-style requests in the format - * > `https://*bucket_name*.s3express-*az_id*.*region*.amazonaws.com/*key-name*`. Path-style requests are not supported. - * > For more information, see Regional and Zonal endpoints [^5] in the *Amazon S3 User Guide*. + * > `https://*bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com/*key-name*`. Path-style requests are not + * > supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for + * > directory buckets in Availability Zones [^5] in the *Amazon S3 User Guide*. For more information about endpoints in + * > Local Zones, see Available Local Zone for directory buckets [^6] in the *Amazon S3 User Guide*. * * - `Permissions`: * * - **General purpose bucket permissions** - For information about permissions required to use the multipart upload - * API, see Multipart Upload and Permissions [^6] in the *Amazon S3 User Guide*. + * API, see Multipart Upload and Permissions [^7] in the *Amazon S3 User Guide*. * - * If you provide an additional checksum value [^7] in your `MultipartUpload` requests and the object is encrypted + * If you provide an additional checksum value [^8] in your `MultipartUpload` requests and the object is encrypted * with Key Management Service, you must have permission to use the `kms:Decrypt` action for the * `CompleteMultipartUpload` request to succeed. * - **Directory bucket permissions** - To grant access to this API operation on a directory bucket, we recommend that - * you use the `CreateSession` [^8] API operation for session-based authorization. Specifically, you grant the + * you use the `CreateSession` [^9] API operation for session-based authorization. Specifically, you grant the * `s3express:CreateSession` permission to the directory bucket in a bucket policy or an IAM identity-based policy. * Then, you make the `CreateSession` API call on the bucket to obtain a session token. With the session token in * your request header, you can make API requests to this operation. After the session token expires, you make * another `CreateSession` API call to generate a new session token for use. Amazon Web Services CLI or SDKs create * session and refresh the session token automatically to avoid service interruptions when a session expires. For - * more information about authorization, see `CreateSession` [^9]. + * more information about authorization, see `CreateSession` [^10]. * * If the object is encrypted with SSE-KMS, you must also have the `kms:GenerateDataKey` and `kms:Decrypt` * permissions in IAM identity-based policies and KMS key policies for the KMS key. @@ -307,30 +313,32 @@ public function bucketNotExists($input): BucketNotExistsWaiter * * - `HTTP Host header syntax`: * - * **Directory buckets ** - The HTTP Host header syntax is `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. + * **Directory buckets ** - The HTTP Host header syntax is + * `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. * * The following operations are related to `CompleteMultipartUpload`: * - * - CreateMultipartUpload [^10] - * - UploadPart [^11] - * - AbortMultipartUpload [^12] - * - ListParts [^13] - * - ListMultipartUploads [^14] + * - CreateMultipartUpload [^11] + * - UploadPart [^12] + * - AbortMultipartUpload [^13] + * - ListParts [^14] + * - ListMultipartUploads [^15] * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html - * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html - * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html - * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html + * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html + * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html - * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html - * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html - * [^12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html - * [^13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html - * [^14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html + * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html + * [^12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html + * [^13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html + * [^14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html + * [^15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html * * @see http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadComplete.html * @see https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html @@ -378,25 +386,27 @@ public function completeMultipartUpload($input): CompleteMultipartUploadOutput * > Multi-Region Access Point ARN. * > - **Directory buckets ** - For directory buckets, you must make requests for this API operation to the Zonal * > endpoint. These endpoints support virtual-hosted-style requests in the format - * > `https://*bucket_name*.s3express-*az_id*.*region*.amazonaws.com/*key-name*`. Path-style requests are not - * > supported. For more information, see Regional and Zonal endpoints [^2] in the *Amazon S3 User Guide*. + * > `https://*bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com/*key-name*`. Path-style requests are not + * > supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for + * > directory buckets in Availability Zones [^2] in the *Amazon S3 User Guide*. For more information about endpoints + * > in Local Zones, see Available Local Zone for directory buckets [^3] in the *Amazon S3 User Guide*. * > - VPC endpoints don't support cross-Region requests (including copies). If you're using VPC endpoints, your source * > and destination buckets should be in the same Amazon Web Services Region as your VPC endpoint. * > * * Both the Region that you want to copy the object from and the Region that you want to copy the object to must be * enabled for your account. For more information about how to enable a Region for your account, see Enable or disable a - * Region for standalone accounts [^3] in the *Amazon Web Services Account Management Guide*. + * Region for standalone accounts [^4] in the *Amazon Web Services Account Management Guide*. * * ! Amazon S3 transfer acceleration does not support cross-Region copies. If you request a cross-Region copy using a * ! transfer acceleration endpoint, you get a `400 Bad Request` error. For more information, see Transfer Acceleration - * ! [^4]. + * ! [^5]. * * - `Authentication and authorization`: * * All `CopyObject` requests must be authenticated and signed by using IAM credentials (access key ID and secret * access key for the IAM identities). All headers with the `x-amz-` prefix, including `x-amz-copy-source`, must be - * signed. For more information, see REST Authentication [^5]. + * signed. For more information, see REST Authentication [^6]. * * **Directory buckets** - You must use the IAM credentials to authenticate and authorize your access to the * `CopyObject` API operation, instead of using the temporary security credentials through the `CreateSession` API @@ -429,8 +439,8 @@ public function completeMultipartUpload($input): CompleteMultipartUploadOutput * If the object is encrypted with SSE-KMS, you must also have the `kms:GenerateDataKey` and `kms:Decrypt` * permissions in IAM identity-based policies and KMS key policies for the KMS key. * - * For example policies, see Example bucket policies for S3 Express One Zone [^6] and Amazon Web Services Identity - * and Access Management (IAM) identity-based policies for S3 Express One Zone [^7] in the *Amazon S3 User Guide*. + * For example policies, see Example bucket policies for S3 Express One Zone [^7] and Amazon Web Services Identity + * and Access Management (IAM) identity-based policies for S3 Express One Zone [^8] in the *Amazon S3 User Guide*. * * - `Response and special errors`: * @@ -445,7 +455,7 @@ public function completeMultipartUpload($input): CompleteMultipartUploadOutput * - If the error occurs before the copy action starts, you receive a standard Amazon S3 error. * - If the error occurs during the copy operation, the error response is embedded in the `200 OK` response. For * example, in a cross-region copy, you may encounter throttling and receive a `200 OK` response. For more - * information, see Resolve the Error 200 response when copying objects to Amazon S3 [^8]. The `200 OK` status + * information, see Resolve the Error 200 response when copying objects to Amazon S3 [^9]. The `200 OK` status * code means the copy was accepted, but it doesn't mean the copy is complete. Another example is when you * disconnect from Amazon S3 before the copy is complete, Amazon S3 might cancel the copy and you may receive a * `200 OK` response. You must stay connected to Amazon S3 until the entire response is successfully received and @@ -463,27 +473,29 @@ public function completeMultipartUpload($input): CompleteMultipartUploadOutput * The copy request charge is based on the storage class and Region that you specify for the destination object. The * request can also result in a data retrieval charge for the source if the source storage class bills for data * retrieval. If the copy source is in a different region, the data transfer is billed to the copy source account. For - * pricing information, see Amazon S3 pricing [^9]. + * pricing information, see Amazon S3 pricing [^10]. * - `HTTP Host header syntax`: * - * **Directory buckets ** - The HTTP Host header syntax is `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. + * **Directory buckets ** - The HTTP Host header syntax is + * `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. * * The following operations are related to `CopyObject`: * - * - PutObject [^10] - * - GetObject [^11] + * - PutObject [^11] + * - GetObject [^12] * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html - * [^3]: https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html#manage-acct-regions-enable-standalone - * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html - * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html - * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html - * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html - * [^8]: https://repost.aws/knowledge-center/s3-resolve-200-internalerror - * [^9]: http://aws.amazon.com/s3/pricing/ - * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html - * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html + * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html + * [^4]: https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html#manage-acct-regions-enable-standalone + * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html + * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html + * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html + * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html + * [^9]: https://repost.aws/knowledge-center/s3-resolve-200-internalerror + * [^10]: http://aws.amazon.com/s3/pricing/ + * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html + * [^12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html * * @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectCOPY.html * @see https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html @@ -564,8 +576,10 @@ public function copyObject($input): CopyObjectOutput * > User Guide*. * > - **Directory buckets ** - For directory buckets, you must make requests for this API operation to the Regional * > endpoint. These endpoints support path-style requests in the format - * > `https://s3express-control.*region_code*.amazonaws.com/*bucket-name*`. Virtual-hosted-style requests aren't - * > supported. For more information, see Regional and Zonal endpoints [^4] in the *Amazon S3 User Guide*. + * > `https://s3express-control.*region-code*.amazonaws.com/*bucket-name*`. Virtual-hosted-style requests aren't + * > supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for + * > directory buckets in Availability Zones [^4] in the *Amazon S3 User Guide*. For more information about endpoints + * > in Local Zones, see Available Local Zone for directory buckets [^5] in the *Amazon S3 User Guide*. * > * * - `Permissions`: @@ -592,51 +606,52 @@ public function copyObject($input): CopyObjectOutput * ! For the majority of modern use cases in S3, we recommend that you keep all Block Public Access settings * ! enabled and keep ACLs disabled. If you would like to share data with users outside of your account, you can * ! use bucket policies as needed. For more information, see Controlling ownership of objects and disabling ACLs - * ! for your bucket [^5] and Blocking public access to your Amazon S3 storage [^6] in the *Amazon S3 User Guide*. + * ! for your bucket [^6] and Blocking public access to your Amazon S3 storage [^7] in the *Amazon S3 User Guide*. * * - **S3 Block Public Access** - If your specific use case requires granting public access to your S3 resources, * you can disable Block Public Access. Specifically, you can create a new bucket with Block Public Access - * enabled, then separately call the `DeletePublicAccessBlock` [^7] API. To use this operation, you must have the + * enabled, then separately call the `DeletePublicAccessBlock` [^8] API. To use this operation, you must have the * `s3:PutBucketPublicAccessBlock` permission. For more information about S3 Block Public Access, see Blocking - * public access to your Amazon S3 storage [^8] in the *Amazon S3 User Guide*. + * public access to your Amazon S3 storage [^9] in the *Amazon S3 User Guide*. * * - **Directory bucket permissions** - You must have the `s3express:CreateBucket` permission in an IAM identity-based * policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can * only be performed by the Amazon Web Services account that owns the resource. For more information about directory * bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One - * Zone [^9] in the *Amazon S3 User Guide*. + * Zone [^10] in the *Amazon S3 User Guide*. * * ! The permissions for ACLs, Object Lock, S3 Object Ownership, and S3 Block Public Access are not supported for * ! directory buckets. For directory buckets, all Block Public Access settings are enabled at the bucket level and * ! S3 Object Ownership is set to Bucket owner enforced (ACLs disabled). These settings can't be modified. * ! * ! For more information about permissions for creating and working with directory buckets, see Directory buckets - * ! [^10] in the *Amazon S3 User Guide*. For more information about supported S3 features for directory buckets, - * ! see Features of S3 Express One Zone [^11] in the *Amazon S3 User Guide*. + * ! [^11] in the *Amazon S3 User Guide*. For more information about supported S3 features for directory buckets, + * ! see Features of S3 Express One Zone [^12] in the *Amazon S3 User Guide*. * * * - `HTTP Host header syntax`: * - * **Directory buckets ** - The HTTP Host header syntax is `s3express-control.*region*.amazonaws.com`. + * **Directory buckets ** - The HTTP Host header syntax is `s3express-control.*region-code*.amazonaws.com`. * * The following operations are related to `CreateBucket`: * - * - PutObject [^12] - * - DeleteBucket [^13] + * - PutObject [^13] + * - DeleteBucket [^14] * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html - * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html - * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html - * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html - * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html - * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html - * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html - * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone.html#s3-express-features - * [^12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html - * [^13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html + * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html + * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html + * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html + * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html + * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html + * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html + * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html + * [^12]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone.html#s3-express-features + * [^13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html + * [^14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html * * @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUT.html * @see https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html @@ -689,8 +704,10 @@ public function createBucket($input): CreateBucketOutput * > - **Directory buckets ** - S3 Lifecycle is not supported by directory buckets. * > - **Directory buckets ** - For directory buckets, you must make requests for this API operation to the Zonal * > endpoint. These endpoints support virtual-hosted-style requests in the format - * > `https://*bucket_name*.s3express-*az_id*.*region*.amazonaws.com/*key-name*`. Path-style requests are not - * > supported. For more information, see Regional and Zonal endpoints [^4] in the *Amazon S3 User Guide*. + * > `https://*bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com/*key-name*`. Path-style requests are not + * > supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for + * > directory buckets in Availability Zones [^4] in the *Amazon S3 User Guide*. For more information about endpoints + * > in Local Zones, see Available Local Zone for directory buckets [^5] in the *Amazon S3 User Guide*. * > * * - `Request signing`: @@ -698,7 +715,7 @@ public function createBucket($input): CreateBucketOutput * For request signing, multipart upload is just a series of regular requests. You initiate a multipart upload, send * one or more requests to upload parts, and then complete the multipart upload process. You sign each request * individually. There is nothing special about signing multipart upload requests. For more information about signing, - * see Authenticating Requests (Amazon Web Services Signature Version 4) [^5] in the *Amazon S3 User Guide*. + * see Authenticating Requests (Amazon Web Services Signature Version 4) [^6] in the *Amazon S3 User Guide*. * - `Permissions`: * * - **General purpose bucket permissions** - To perform a multipart upload with encryption using an Key Management @@ -707,16 +724,16 @@ public function createBucket($input): CreateBucketOutput * `CreateMultipartUpload` API. Then, the requester needs permissions for the `kms:Decrypt` action on the * `UploadPart` and `UploadPartCopy` APIs. These permissions are required because Amazon S3 must decrypt and read * data from the encrypted file parts before it completes the multipart upload. For more information, see Multipart - * upload API and permissions [^6] and Protecting data using server-side encryption with Amazon Web Services KMS - * [^7] in the *Amazon S3 User Guide*. + * upload API and permissions [^7] and Protecting data using server-side encryption with Amazon Web Services KMS + * [^8] in the *Amazon S3 User Guide*. * - **Directory bucket permissions** - To grant access to this API operation on a directory bucket, we recommend that - * you use the `CreateSession` [^8] API operation for session-based authorization. Specifically, you grant the + * you use the `CreateSession` [^9] API operation for session-based authorization. Specifically, you grant the * `s3express:CreateSession` permission to the directory bucket in a bucket policy or an IAM identity-based policy. * Then, you make the `CreateSession` API call on the bucket to obtain a session token. With the session token in * your request header, you can make API requests to this operation. After the session token expires, you make * another `CreateSession` API call to generate a new session token for use. Amazon Web Services CLI or SDKs create * session and refresh the session token automatically to avoid service interruptions when a session expires. For - * more information about authorization, see `CreateSession` [^9]. + * more information about authorization, see `CreateSession` [^10]. * * - `Encryption`: * @@ -733,7 +750,7 @@ public function createBucket($input): CreateBucketOutput * different encryption key (such as an Amazon S3 managed key, a KMS key, or a customer-provided key). When the * encryption setting in your request is different from the default encryption configuration of the destination * bucket, the encryption setting in your request takes precedence. If you choose to provide your own encryption - * key, the request headers you provide in UploadPart [^10] and UploadPartCopy [^11] requests must match the headers + * key, the request headers you provide in UploadPart [^11] and UploadPartCopy [^12] requests must match the headers * you used in the `CreateMultipartUpload` request. * * - Use KMS keys (SSE-KMS) that include the Amazon Web Services managed key (`aws/s3`) and KMS customer managed @@ -750,19 +767,19 @@ public function createBucket($input): CreateBucketOutput * > - To perform a multipart upload with encryption by using an Amazon Web Services KMS key, the requester must * > have permission to the `kms:Decrypt` and `kms:GenerateDataKey*` actions on the key. These permissions are * > required because Amazon S3 must decrypt and read data from the encrypted file parts before it completes the - * > multipart upload. For more information, see Multipart upload API and permissions [^12] and Protecting data - * > using server-side encryption with Amazon Web Services KMS [^13] in the *Amazon S3 User Guide*. + * > multipart upload. For more information, see Multipart upload API and permissions [^13] and Protecting data + * > using server-side encryption with Amazon Web Services KMS [^14] in the *Amazon S3 User Guide*. * > - If your Identity and Access Management (IAM) user or role is in the same Amazon Web Services account as the * > KMS key, then you must have these permissions on the key policy. If your IAM user or role is in a different * > account from the key, then you must have the permissions on both the key policy and your IAM user or role. * > - All `GET` and `PUT` requests for an object protected by KMS fail if you don't make them by using Secure * > Sockets Layer (SSL), Transport Layer Security (TLS), or Signature Version 4. For information about * > configuring any of the officially supported Amazon Web Services SDKs and Amazon Web Services CLI, see - * > Specifying the Signature Version in Request Authentication [^14] in the *Amazon S3 User Guide*. + * > Specifying the Signature Version in Request Authentication [^15] in the *Amazon S3 User Guide*. * > * * For more information about server-side encryption with KMS keys (SSE-KMS), see Protecting Data Using - * Server-Side Encryption with KMS keys [^15] in the *Amazon S3 User Guide*. + * Server-Side Encryption with KMS keys [^16] in the *Amazon S3 User Guide*. * - Use customer-provided encryption keys (SSE-C) – If you want to manage your own encryption keys, provide all * the following headers in the request. * @@ -771,7 +788,7 @@ public function createBucket($input): CreateBucketOutput * - `x-amz-server-side-encryption-customer-key-MD5` * * For more information about server-side encryption with customer-provided encryption keys (SSE-C), see - * Protecting data using server-side encryption with customer-provided encryption keys (SSE-C) [^16] in the + * Protecting data using server-side encryption with customer-provided encryption keys (SSE-C) [^17] in the * *Amazon S3 User Guide*. * * - **Directory buckets** - For directory buckets, there are only two supported options for server-side encryption: @@ -779,11 +796,11 @@ public function createBucket($input): CreateBucketOutput * (SSE-KMS) (`aws:kms`). We recommend that the bucket's default encryption uses the desired encryption * configuration and you don't override the bucket default encryption in your `CreateSession` requests or `PUT` * object requests. Then, new objects are automatically encrypted with the desired encryption settings. For more - * information, see Protecting data with server-side encryption [^17] in the *Amazon S3 User Guide*. For more + * information, see Protecting data with server-side encryption [^18] in the *Amazon S3 User Guide*. For more * information about the encryption overriding behaviors in directory buckets, see Specifying server-side encryption - * with KMS for new object uploads [^18]. + * with KMS for new object uploads [^19]. * - * In the Zonal endpoint API calls (except CopyObject [^19] and UploadPartCopy [^20]) using the REST API, the + * In the Zonal endpoint API calls (except CopyObject [^20] and UploadPartCopy [^21]) using the REST API, the * encryption request headers must match the encryption settings that are specified in the `CreateSession` request. * You can't override the values of the encryption settings (`x-amz-server-side-encryption`, * `x-amz-server-side-encryption-aws-kms-key-id`, `x-amz-server-side-encryption-context`, and @@ -795,7 +812,7 @@ public function createBucket($input): CreateBucketOutput * > automatically to avoid service interruptions when a session expires. The CLI or the Amazon Web Services SDKs * > use the bucket's default encryption configuration for the `CreateSession` request. It's not supported to * > override the encryption settings values in the `CreateSession` request. So in the Zonal endpoint API calls - * > (except CopyObject [^21] and UploadPartCopy [^22]), the encryption request headers must match the default + * > (except CopyObject [^22] and UploadPartCopy [^23]), the encryption request headers must match the default * > encryption configuration of the directory bucket. * * > For directory buckets, when you perform a `CreateMultipartUpload` operation and an `UploadPartCopy` operation, @@ -805,43 +822,45 @@ public function createBucket($input): CreateBucketOutput * * - `HTTP Host header syntax`: * - * **Directory buckets ** - The HTTP Host header syntax is `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. + * **Directory buckets ** - The HTTP Host header syntax is + * `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. * * The following operations are related to `CreateMultipartUpload`: * - * - UploadPart [^23] - * - CompleteMultipartUpload [^24] - * - AbortMultipartUpload [^25] - * - ListParts [^26] - * - ListMultipartUploads [^27] + * - UploadPart [^24] + * - CompleteMultipartUpload [^25] + * - AbortMultipartUpload [^26] + * - ListParts [^27] + * - ListMultipartUploads [^28] * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html - * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html - * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions - * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html - * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html + * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html + * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions + * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html - * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html - * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html - * [^12]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions - * [^13]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html - * [^14]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version - * [^15]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html - * [^16]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html - * [^17]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html - * [^18]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html - * [^19]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html - * [^20]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html - * [^21]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html - * [^22]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html - * [^23]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html - * [^24]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html - * [^25]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html - * [^26]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html - * [^27]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html + * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html + * [^12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html + * [^13]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions + * [^14]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html + * [^15]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version + * [^16]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html + * [^17]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html + * [^18]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html + * [^19]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html + * [^20]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html + * [^21]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html + * [^22]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html + * [^23]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html + * [^24]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html + * [^25]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html + * [^26]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html + * [^27]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html + * [^28]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html * * @see http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadInitiate.html * @see https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html @@ -897,8 +916,10 @@ public function createMultipartUpload($input): CreateMultipartUploadOutput * > until all the in-progress multipart uploads are aborted or completed. * > - **Directory buckets ** - For directory buckets, you must make requests for this API operation to the Regional * > endpoint. These endpoints support path-style requests in the format - * > `https://s3express-control.*region_code*.amazonaws.com/*bucket-name*`. Virtual-hosted-style requests aren't - * > supported. For more information, see Regional and Zonal endpoints [^1] in the *Amazon S3 User Guide*. + * > `https://s3express-control.*region-code*.amazonaws.com/*bucket-name*`. Virtual-hosted-style requests aren't + * > supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for + * > directory buckets in Availability Zones [^1] in the *Amazon S3 User Guide*. For more information about endpoints + * > in Local Zones, see Available Local Zone for directory buckets [^2] in the *Amazon S3 User Guide*. * > * * - `Permissions`: @@ -909,21 +930,22 @@ public function createMultipartUpload($input): CreateMultipartUploadOutput * policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can * only be performed by the Amazon Web Services account that owns the resource. For more information about directory * bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One - * Zone [^2] in the *Amazon S3 User Guide*. + * Zone [^3] in the *Amazon S3 User Guide*. * * - `HTTP Host header syntax`: * - * **Directory buckets ** - The HTTP Host header syntax is `s3express-control.*region*.amazonaws.com`. + * **Directory buckets ** - The HTTP Host header syntax is `s3express-control.*region-code*.amazonaws.com`. * * The following operations are related to `DeleteBucket`: * - * - CreateBucket [^3] - * - DeleteObject [^4] + * - CreateBucket [^4] + * - DeleteObject [^5] * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html - * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html - * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html - * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html + * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html + * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html + * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html + * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html * * @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETE.html * @see https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html @@ -981,25 +1003,47 @@ public function deleteBucketCors($input): Result } /** - * Removes an object from a bucket. The behavior depends on the bucket's versioning state. For more information, see - * Best practices to consider before deleting an object [^1]. + * Removes an object from a bucket. The behavior depends on the bucket's versioning state: + * + * - If bucket versioning is not enabled, the operation permanently deletes the object. + * - If bucket versioning is enabled, the operation inserts a delete marker, which becomes the current version of the + * object. To permanently delete an object in a versioned bucket, you must include the object’s `versionId` in the + * request. For more information about versioning-enabled buckets, see Deleting object versions from a + * versioning-enabled bucket [^1]. + * - If bucket versioning is suspended, the operation removes the object that has a null `versionId`, if there is one, + * and inserts a delete marker that becomes the current version of the object. If there isn't an object with a null + * `versionId`, and all versions of the object have a `versionId`, Amazon S3 does not remove the object and only + * inserts a delete marker. To permanently delete an object that has a `versionId`, you must include the object’s + * `versionId` in the request. For more information about versioning-suspended buckets, see Deleting objects from + * versioning-suspended buckets [^2]. + * + * > - **Directory buckets** - S3 Versioning isn't enabled and supported for directory buckets. For this API operation, + * > only the `null` value of the version ID is supported by directory buckets. You can only specify `null` to the + * > `versionId` query parameter in the request. + * > - **Directory buckets** - For directory buckets, you must make requests for this API operation to the Zonal + * > endpoint. These endpoints support virtual-hosted-style requests in the format + * > `https://*bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com/*key-name*`. Path-style requests are not + * > supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for + * > directory buckets in Availability Zones [^3] in the *Amazon S3 User Guide*. For more information about endpoints + * > in Local Zones, see Available Local Zone for directory buckets [^4] in the *Amazon S3 User Guide*. + * > * * To remove a specific version, you must use the `versionId` query parameter. Using this query parameter permanently * deletes the version. If the object deleted is a delete marker, Amazon S3 sets the response header - * `x-amz-delete-marker` to true. If the object you want to delete is in a bucket where the bucket versioning - * configuration is MFA delete enabled, you must include the `x-amz-mfa` request header in the DELETE `versionId` - * request. Requests that include `x-amz-mfa` must use HTTPS. For more information about MFA delete and to see example - * requests, see Using MFA delete [^2] and Sample request [^3] in the *Amazon S3 User Guide*. - * - * > - S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the `null` value of - * > the version ID is supported by directory buckets. You can only specify `null` to the `versionId` query parameter - * > in the request. - * > - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints - * > support virtual-hosted-style requests in the format - * > `https://*bucket_name*.s3express-*az_id*.*region*.amazonaws.com/*key-name*`. Path-style requests are not - * > supported. For more information, see Regional and Zonal endpoints [^4] in the *Amazon S3 User Guide*. - * > - MFA delete is not supported by directory buckets. - * > + * `x-amz-delete-marker` to true. + * + * If the object you want to delete is in a bucket where the bucket versioning configuration is MFA Delete enabled, you + * must include the `x-amz-mfa` request header in the DELETE `versionId` request. Requests that include `x-amz-mfa` must + * use HTTPS. For more information about MFA Delete, see Using MFA Delete [^5] in the *Amazon S3 User Guide*. To see + * sample requests that use versioning, see Sample Request [^6]. + * + * > **Directory buckets** - MFA delete is not supported by directory buckets. + * + * You can delete objects by explicitly calling DELETE Object or calling (PutBucketLifecycle [^7]) to enable Amazon S3 + * to remove them for you. If you want to block users or accounts from removing or deleting objects from your bucket, + * you must deny them the `s3:DeleteObject`, `s3:DeleteObjectVersion`, and `s3:PutLifeCycleConfiguration` actions. + * + * > **Directory buckets** - S3 Lifecycle is not supported by directory buckets. * * - `Permissions`: * @@ -1008,30 +1052,37 @@ public function deleteBucketCors($input): Result * * - **`s3:DeleteObject`** - To delete an object from a bucket, you must always have the `s3:DeleteObject` * permission. - * - * > You can also use PutBucketLifecycle to delete objects in Amazon S3. - * * - **`s3:DeleteObjectVersion`** - To delete a specific version of an object from a versioning-enabled bucket, you * must have the `s3:DeleteObjectVersion` permission. - * - If you want to block users or accounts from removing or deleting objects from your bucket, you must deny them - * the `s3:DeleteObject`, `s3:DeleteObjectVersion`, and `s3:PutLifeCycleConfiguration` permissions. * - * - **Directory buckets permissions** - To grant access to this API operation on a directory bucket, we recommend - * that you use the CreateSession API operation for session-based authorization. + * - **Directory bucket permissions** - To grant access to this API operation on a directory bucket, we recommend that + * you use the `CreateSession` [^8] API operation for session-based authorization. Specifically, you grant the + * `s3express:CreateSession` permission to the directory bucket in a bucket policy or an IAM identity-based policy. + * Then, you make the `CreateSession` API call on the bucket to obtain a session token. With the session token in + * your request header, you can make API requests to this operation. After the session token expires, you make + * another `CreateSession` API call to generate a new session token for use. Amazon Web Services CLI or SDKs create + * session and refresh the session token automatically to avoid service interruptions when a session expires. For + * more information about authorization, see `CreateSession` [^9]. * * - `HTTP Host header syntax`: * - * **Directory buckets ** - The HTTP Host header syntax is `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. + * **Directory buckets ** - The HTTP Host header syntax is + * `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. * * The following action is related to `DeleteObject`: * - * - PutObject [^5] + * - PutObject [^10] * - * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjects.html#DeletingObjects-best-practices - * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html - * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete - * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html - * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html + * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjectVersions.html + * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjectsfromVersioningSuspendedBuckets.html + * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html + * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html + * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete + * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html + * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html * * @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectDELETE.html * @see https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html @@ -1112,8 +1163,10 @@ public function deleteObjectTagging($input): DeleteObjectTaggingOutput * > - **Directory buckets** - S3 Versioning isn't enabled and supported for directory buckets. * > - **Directory buckets** - For directory buckets, you must make requests for this API operation to the Zonal * > endpoint. These endpoints support virtual-hosted-style requests in the format - * > `https://*bucket_name*.s3express-*az_id*.*region*.amazonaws.com/*key-name*`. Path-style requests are not - * > supported. For more information, see Regional and Zonal endpoints [^1] in the *Amazon S3 User Guide*. + * > `https://*bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com/*key-name*`. Path-style requests are not + * > supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for + * > directory buckets in Availability Zones [^1] in the *Amazon S3 User Guide*. For more information about endpoints + * > in Local Zones, see Available Local Zone for directory buckets [^2] in the *Amazon S3 User Guide*. * > * * The operation supports two modes for the response: verbose and quiet. By default, the operation uses verbose mode in @@ -1124,7 +1177,7 @@ public function deleteObjectTagging($input): DeleteObjectTaggingOutput * When performing this action on an MFA Delete enabled bucket, that attempts to delete any versioned objects, you must * include an MFA token. If you do not provide one, the entire request will fail, even if there are non-versioned * objects you are trying to delete. If you provide an invalid token, whether there are versioned keys in the request or - * not, the entire Multi-Object Delete request will fail. For information about MFA Delete, see MFA Delete [^2] in the + * not, the entire Multi-Object Delete request will fail. For information about MFA Delete, see MFA Delete [^3] in the * *Amazon S3 User Guide*. * * > **Directory buckets** - MFA delete is not supported by directory buckets. @@ -1140,13 +1193,13 @@ public function deleteObjectTagging($input): DeleteObjectTaggingOutput * must specify the `s3:DeleteObjectVersion` permission. * * - **Directory bucket permissions** - To grant access to this API operation on a directory bucket, we recommend that - * you use the `CreateSession` [^3] API operation for session-based authorization. Specifically, you grant the + * you use the `CreateSession` [^4] API operation for session-based authorization. Specifically, you grant the * `s3express:CreateSession` permission to the directory bucket in a bucket policy or an IAM identity-based policy. * Then, you make the `CreateSession` API call on the bucket to obtain a session token. With the session token in * your request header, you can make API requests to this operation. After the session token expires, you make * another `CreateSession` API call to generate a new session token for use. Amazon Web Services CLI or SDKs create * session and refresh the session token automatically to avoid service interruptions when a session expires. For - * more information about authorization, see `CreateSession` [^4]. + * more information about authorization, see `CreateSession` [^5]. * * - `Content-MD5 request header`: * @@ -1158,25 +1211,27 @@ public function deleteObjectTagging($input): DeleteObjectTaggingOutput * * - `HTTP Host header syntax`: * - * **Directory buckets ** - The HTTP Host header syntax is `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. + * **Directory buckets ** - The HTTP Host header syntax is + * `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. * * The following operations are related to `DeleteObjects`: * - * - CreateMultipartUpload [^5] - * - UploadPart [^6] - * - CompleteMultipartUpload [^7] - * - ListParts [^8] - * - AbortMultipartUpload [^9] + * - CreateMultipartUpload [^6] + * - UploadPart [^7] + * - CompleteMultipartUpload [^8] + * - ListParts [^9] + * - AbortMultipartUpload [^10] * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html - * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete - * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html + * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html - * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html - * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html - * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html - * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html - * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html + * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html + * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html + * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html + * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html + * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html * * @see http://docs.amazonwebservices.com/AmazonS3/latest/API/multiobjectdeleteapi.html * @see https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html @@ -1273,7 +1328,7 @@ public function getBucketCors($input): GetBucketCorsOutput * * - `HTTP Host header syntax`: * - * **Directory buckets ** - The HTTP Host header syntax is `s3express-control.*region*.amazonaws.com`. + * **Directory buckets ** - The HTTP Host header syntax is `s3express-control.*region-code*.amazonaws.com`. * * The following operations are related to `GetBucketEncryption`: * @@ -1321,15 +1376,17 @@ public function getBucketEncryption($input): GetBucketEncryptionOutput * if you have the object `photos/2006/February/sample.jpg` in the bucket named `examplebucket--use1-az5--x-s3`, specify * the object key name as `/photos/2006/February/sample.jpg`. Also, when you make requests to this API operation, your * requests are sent to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format - * `https://*bucket_name*.s3express-*az_id*.*region*.amazonaws.com/*key-name*`. Path-style requests are not supported. - * For more information, see Regional and Zonal endpoints [^2] in the *Amazon S3 User Guide*. + * `https://*bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com/*key-name*`. Path-style requests are not + * supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory + * buckets in Availability Zones [^2] in the *Amazon S3 User Guide*. For more information about endpoints in Local + * Zones, see Available Local Zone for directory buckets [^3] in the *Amazon S3 User Guide*. * * - `Permissions`: * * - **General purpose bucket permissions** - You must have the required permissions in a policy. To use `GetObject`, * you must have the `READ` access to the object (or version). If you grant `READ` access to the anonymous user, the * `GetObject` operation returns the object without using an authorization header. For more information, see - * Specifying permissions in a policy [^3] in the *Amazon S3 User Guide*. + * Specifying permissions in a policy [^4] in the *Amazon S3 User Guide*. * * If you include a `versionId` in your request header, you must have the `s3:GetObjectVersion` permission to access * a specific version of an object. The `s3:GetObject` permission is not required in this scenario. @@ -1346,13 +1403,13 @@ public function getBucketEncryption($input): GetBucketEncryptionOutput * error. * * - **Directory bucket permissions** - To grant access to this API operation on a directory bucket, we recommend that - * you use the `CreateSession` [^4] API operation for session-based authorization. Specifically, you grant the + * you use the `CreateSession` [^5] API operation for session-based authorization. Specifically, you grant the * `s3express:CreateSession` permission to the directory bucket in a bucket policy or an IAM identity-based policy. * Then, you make the `CreateSession` API call on the bucket to obtain a session token. With the session token in * your request header, you can make API requests to this operation. After the session token expires, you make * another `CreateSession` API call to generate a new session token for use. Amazon Web Services CLI or SDKs create * session and refresh the session token automatically to avoid service interruptions when a session expires. For - * more information about authorization, see `CreateSession` [^5]. + * more information about authorization, see `CreateSession` [^6]. * * If the object is encrypted using SSE-KMS, you must also have the `kms:GenerateDataKey` and `kms:Decrypt` * permissions in IAM identity-based policies and KMS key policies for the KMS key. @@ -1361,9 +1418,9 @@ public function getBucketEncryption($input): GetBucketEncryptionOutput * * If the object you are retrieving is stored in the S3 Glacier Flexible Retrieval storage class, the S3 Glacier Deep * Archive storage class, the S3 Intelligent-Tiering Archive Access tier, or the S3 Intelligent-Tiering Deep Archive - * Access tier, before you can retrieve the object you must first restore a copy using RestoreObject [^6]. Otherwise, + * Access tier, before you can retrieve the object you must first restore a copy using RestoreObject [^7]. Otherwise, * this operation returns an `InvalidObjectState` error. For information about restoring archived objects, see - * Restoring Archived Objects [^7] in the *Amazon S3 User Guide*. + * Restoring Archived Objects [^8] in the *Amazon S3 User Guide*. * * **Directory buckets ** - For directory buckets, only the S3 Express One Zone storage class is supported to store * newly created objects. Unsupported storage class values won't write a destination object and will respond with the @@ -1378,7 +1435,7 @@ public function getBucketEncryption($input): GetBucketEncryptionOutput * * **Directory buckets** - For directory buckets, there are only two supported options for server-side encryption: * SSE-S3 and SSE-KMS. SSE-C isn't supported. For more information, see Protecting data with server-side encryption - * [^8] in the *Amazon S3 User Guide*. + * [^9] in the *Amazon S3 User Guide*. * - `Overriding response header values through the request`: * * There are times when you want to override certain response header values of a `GetObject` response. For example, @@ -1407,23 +1464,25 @@ public function getBucketEncryption($input): GetBucketEncryptionOutput * * - `HTTP Host header syntax`: * - * **Directory buckets ** - The HTTP Host header syntax is `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. + * **Directory buckets ** - The HTTP Host header syntax is + * `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. * * The following operations are related to `GetObject`: * - * - ListBuckets [^9] - * - GetObjectAcl [^10] + * - ListBuckets [^10] + * - GetObjectAcl [^11] * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html - * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html - * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html + * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html - * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html - * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html - * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html - * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html - * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html + * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html + * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html + * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html + * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html + * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html * * @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGET.html * @see https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html @@ -1651,18 +1710,21 @@ public function getObjectTagging($input): GetObjectTaggingOutput * * - `HTTP Host header syntax`: * - * **Directory buckets ** - The HTTP Host header syntax is `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. + * **Directory buckets ** - The HTTP Host header syntax is + * `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. * * > For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints * > support virtual-hosted-style requests in the format - * > `https://*bucket_name*.s3express-*az_id*.*region*.amazonaws.com/*key-name*`. Path-style requests are not - * > supported. For more information, see Regional and Zonal endpoints [^8] in the *Amazon S3 User Guide*. + * > `https://*bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com/*key-name*`. Path-style requests are not + * > supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for + * > directory buckets in Availability Zones [^8] in the *Amazon S3 User Guide*. For more information about endpoints + * > in Local Zones, see Available Local Zone for directory buckets [^9] in the *Amazon S3 User Guide*. * * * The following actions are related to `HeadObject`: * - * - GetObject [^9] - * - GetObjectAttributes [^10] + * - GetObject [^10] + * - GetObjectAttributes [^11] * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html @@ -1672,8 +1734,9 @@ public function getObjectTagging($input): GetObjectTaggingOutput * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html - * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html - * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html + * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html + * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html + * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html * * @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectHEAD.html * @see https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html @@ -1780,21 +1843,23 @@ public function listBuckets($input = []): ListBucketsOutput * * > **Directory buckets** - For directory buckets, you must make requests for this API operation to the Zonal endpoint. * > These endpoints support virtual-hosted-style requests in the format - * > `https://*bucket_name*.s3express-*az_id*.*region*.amazonaws.com/*key-name*`. Path-style requests are not supported. - * > For more information, see Regional and Zonal endpoints [^2] in the *Amazon S3 User Guide*. + * > `https://*bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com/*key-name*`. Path-style requests are not + * > supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for + * > directory buckets in Availability Zones [^2] in the *Amazon S3 User Guide*. For more information about endpoints in + * > Local Zones, see Available Local Zone for directory buckets [^3] in the *Amazon S3 User Guide*. * * - `Permissions`: * * - **General purpose bucket permissions** - For information about permissions required to use the multipart upload - * API, see Multipart Upload and Permissions [^3] in the *Amazon S3 User Guide*. + * API, see Multipart Upload and Permissions [^4] in the *Amazon S3 User Guide*. * - **Directory bucket permissions** - To grant access to this API operation on a directory bucket, we recommend that - * you use the `CreateSession` [^4] API operation for session-based authorization. Specifically, you grant the + * you use the `CreateSession` [^5] API operation for session-based authorization. Specifically, you grant the * `s3express:CreateSession` permission to the directory bucket in a bucket policy or an IAM identity-based policy. * Then, you make the `CreateSession` API call on the bucket to obtain a session token. With the session token in * your request header, you can make API requests to this operation. After the session token expires, you make * another `CreateSession` API call to generate a new session token for use. Amazon Web Services CLI or SDKs create * session and refresh the session token automatically to avoid service interruptions when a session expires. For - * more information about authorization, see `CreateSession` [^5]. + * more information about authorization, see `CreateSession` [^6]. * * - `Sorting of multipart uploads in response`: * @@ -1811,26 +1876,28 @@ public function listBuckets($input = []): ListBucketsOutput * * - `HTTP Host header syntax`: * - * **Directory buckets ** - The HTTP Host header syntax is `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. + * **Directory buckets ** - The HTTP Host header syntax is + * `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. * * The following operations are related to `ListMultipartUploads`: * - * - CreateMultipartUpload [^6] - * - UploadPart [^7] - * - CompleteMultipartUpload [^8] - * - ListParts [^9] - * - AbortMultipartUpload [^10] + * - CreateMultipartUpload [^7] + * - UploadPart [^8] + * - CompleteMultipartUpload [^9] + * - ListParts [^10] + * - AbortMultipartUpload [^11] * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html - * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html - * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html + * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html - * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html - * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html - * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html - * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html - * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html + * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html + * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html + * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html + * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html + * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html * * @see http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListMPUpload.html * @see https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html @@ -1922,8 +1989,10 @@ public function listObjectVersions($input): ListObjectVersionsOutput * > only to in-progress multipart uploads. * > - **Directory buckets** - For directory buckets, you must make requests for this API operation to the Zonal * > endpoint. These endpoints support virtual-hosted-style requests in the format - * > `https://*bucket_name*.s3express-*az_id*.*region*.amazonaws.com/*key-name*`. Path-style requests are not - * > supported. For more information, see Regional and Zonal endpoints [^3] in the *Amazon S3 User Guide*. + * > `https://*bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com/*key-name*`. Path-style requests are not + * > supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for + * > directory buckets in Availability Zones [^3] in the *Amazon S3 User Guide*. For more information about endpoints + * > in Local Zones, see Available Local Zone for directory buckets [^4] in the *Amazon S3 User Guide*. * > * * - `Permissions`: @@ -1931,16 +2000,16 @@ public function listObjectVersions($input): ListObjectVersionsOutput * - **General purpose bucket permissions** - To use this operation, you must have READ access to the bucket. You must * have permission to perform the `s3:ListBucket` action. The bucket owner has this permission by default and can * grant this permission to others. For more information about permissions, see Permissions Related to Bucket - * Subresource Operations [^4] and Managing Access Permissions to Your Amazon S3 Resources [^5] in the *Amazon S3 + * Subresource Operations [^5] and Managing Access Permissions to Your Amazon S3 Resources [^6] in the *Amazon S3 * User Guide*. * - **Directory bucket permissions** - To grant access to this API operation on a directory bucket, we recommend that - * you use the `CreateSession` [^6] API operation for session-based authorization. Specifically, you grant the + * you use the `CreateSession` [^7] API operation for session-based authorization. Specifically, you grant the * `s3express:CreateSession` permission to the directory bucket in a bucket policy or an IAM identity-based policy. * Then, you make the `CreateSession` API call on the bucket to obtain a session token. With the session token in * your request header, you can make API requests to this operation. After the session token expires, you make * another `CreateSession` API call to generate a new session token for use. Amazon Web Services CLI or SDKs create * session and refresh the session token automatically to avoid service interruptions when a session expires. For - * more information about authorization, see `CreateSession` [^7]. + * more information about authorization, see `CreateSession` [^8]. * * - `Sorting order of returned objects`: * @@ -1950,29 +2019,31 @@ public function listObjectVersions($input): ListObjectVersionsOutput * * - `HTTP Host header syntax`: * - * **Directory buckets ** - The HTTP Host header syntax is `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. + * **Directory buckets ** - The HTTP Host header syntax is + * `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. * * ! This section describes the latest revision of this action. We recommend that you use this revised API operation for * ! application development. For backward compatibility, Amazon S3 continues to support the prior version of this API - * ! operation, ListObjects [^8]. + * ! operation, ListObjects [^9]. * * The following operations are related to `ListObjectsV2`: * - * - GetObject [^9] - * - PutObject [^10] - * - CreateBucket [^11] + * - GetObject [^10] + * - PutObject [^11] + * - CreateBucket [^12] * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ListingKeysUsingAPIs.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html - * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources - * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html - * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html + * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html - * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html - * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html - * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html - * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html + * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html + * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html + * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html + * [^12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html * * @see https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html * @see https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#listobjectsv2 @@ -2022,51 +2093,55 @@ public function listObjectsV2($input): ListObjectsV2Output * * > **Directory buckets** - For directory buckets, you must make requests for this API operation to the Zonal endpoint. * > These endpoints support virtual-hosted-style requests in the format - * > `https://*bucket_name*.s3express-*az_id*.*region*.amazonaws.com/*key-name*`. Path-style requests are not supported. - * > For more information, see Regional and Zonal endpoints [^3] in the *Amazon S3 User Guide*. + * > `https://*bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com/*key-name*`. Path-style requests are not + * > supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for + * > directory buckets in Availability Zones [^3] in the *Amazon S3 User Guide*. For more information about endpoints in + * > Local Zones, see Available Local Zone for directory buckets [^4] in the *Amazon S3 User Guide*. * * - `Permissions`: * * - **General purpose bucket permissions** - For information about permissions required to use the multipart upload - * API, see Multipart Upload and Permissions [^4] in the *Amazon S3 User Guide*. + * API, see Multipart Upload and Permissions [^5] in the *Amazon S3 User Guide*. * * If the upload was created using server-side encryption with Key Management Service (KMS) keys (SSE-KMS) or * dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), you must have permission to the * `kms:Decrypt` action for the `ListParts` request to succeed. * - **Directory bucket permissions** - To grant access to this API operation on a directory bucket, we recommend that - * you use the `CreateSession` [^5] API operation for session-based authorization. Specifically, you grant the + * you use the `CreateSession` [^6] API operation for session-based authorization. Specifically, you grant the * `s3express:CreateSession` permission to the directory bucket in a bucket policy or an IAM identity-based policy. * Then, you make the `CreateSession` API call on the bucket to obtain a session token. With the session token in * your request header, you can make API requests to this operation. After the session token expires, you make * another `CreateSession` API call to generate a new session token for use. Amazon Web Services CLI or SDKs create * session and refresh the session token automatically to avoid service interruptions when a session expires. For - * more information about authorization, see `CreateSession` [^6]. + * more information about authorization, see `CreateSession` [^7]. * * - `HTTP Host header syntax`: * - * **Directory buckets ** - The HTTP Host header syntax is `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. + * **Directory buckets ** - The HTTP Host header syntax is + * `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. * * The following operations are related to `ListParts`: * - * - CreateMultipartUpload [^7] - * - UploadPart [^8] - * - CompleteMultipartUpload [^9] - * - AbortMultipartUpload [^10] - * - GetObjectAttributes [^11] - * - ListMultipartUploads [^12] + * - CreateMultipartUpload [^8] + * - UploadPart [^9] + * - CompleteMultipartUpload [^10] + * - AbortMultipartUpload [^11] + * - GetObjectAttributes [^12] + * - ListMultipartUploads [^13] * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html - * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html - * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html + * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html - * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html - * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html - * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html - * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html - * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html - * [^12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html + * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html + * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html + * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html + * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html + * [^12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html + * [^13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html * * @see http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListParts.html * @see https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html @@ -2375,14 +2450,16 @@ public function putBucketTagging($input): Result * > affect permissions. All objects written to the bucket by any account will be owned by the bucket owner. * > - **Directory buckets** - For directory buckets, you must make requests for this API operation to the Zonal * > endpoint. These endpoints support virtual-hosted-style requests in the format - * > `https://*bucket_name*.s3express-*az_id*.*region*.amazonaws.com/*key-name*`. Path-style requests are not - * > supported. For more information, see Regional and Zonal endpoints [^1] in the *Amazon S3 User Guide*. + * > `https://*bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com/*key-name*`. Path-style requests are not + * > supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for + * > directory buckets in Availability Zones [^1] in the *Amazon S3 User Guide*. For more information about endpoints + * > in Local Zones, see Available Local Zone for directory buckets [^2] in the *Amazon S3 User Guide*. * > * * Amazon S3 is a distributed system. If it receives multiple write requests for the same object simultaneously, it * overwrites all but the last object written. However, Amazon S3 provides features that can modify this behavior: * - * - **S3 Object Lock** - To prevent objects from being deleted or overwritten, you can use Amazon S3 Object Lock [^2] + * - **S3 Object Lock** - To prevent objects from being deleted or overwritten, you can use Amazon S3 Object Lock [^3] * in the *Amazon S3 User Guide*. * * > This functionality is not supported for directory buckets. @@ -2391,8 +2468,8 @@ public function putBucketTagging($input): Result * same object simultaneously, it stores all versions of the objects. For each write request that is made to the same * object, Amazon S3 automatically generates a unique version ID of that object being stored in Amazon S3. You can * retrieve, replace, or delete any version of the object. For more information about versioning, see Adding Objects - * to Versioning-Enabled Buckets [^3] in the *Amazon S3 User Guide*. For information about returning the versioning - * state of a bucket, see GetBucketVersioning [^4]. + * to Versioning-Enabled Buckets [^4] in the *Amazon S3 User Guide*. For information about returning the versioning + * state of a bucket, see GetBucketVersioning [^5]. * * > This functionality is not supported for directory buckets. * @@ -2410,13 +2487,13 @@ public function putBucketTagging($input): Result * `s3:PutObjectTagging`. * * - **Directory bucket permissions** - To grant access to this API operation on a directory bucket, we recommend that - * you use the `CreateSession` [^5] API operation for session-based authorization. Specifically, you grant the + * you use the `CreateSession` [^6] API operation for session-based authorization. Specifically, you grant the * `s3express:CreateSession` permission to the directory bucket in a bucket policy or an IAM identity-based policy. * Then, you make the `CreateSession` API call on the bucket to obtain a session token. With the session token in * your request header, you can make API requests to this operation. After the session token expires, you make * another `CreateSession` API call to generate a new session token for use. Amazon Web Services CLI or SDKs create * session and refresh the session token automatically to avoid service interruptions when a session expires. For - * more information about authorization, see `CreateSession` [^6]. + * more information about authorization, see `CreateSession` [^7]. * * If the object is encrypted with SSE-KMS, you must also have the `kms:GenerateDataKey` and `kms:Decrypt` * permissions in IAM identity-based policies and KMS key policies for the KMS key. @@ -2431,21 +2508,23 @@ public function putBucketTagging($input): Result * * - `HTTP Host header syntax`: * - * **Directory buckets ** - The HTTP Host header syntax is `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. + * **Directory buckets ** - The HTTP Host header syntax is + * `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. * * For more information about related Amazon S3 APIs, see the following: * - * - CopyObject [^7] - * - DeleteObject [^8] + * - CopyObject [^8] + * - DeleteObject [^9] * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html - * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html - * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html - * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html - * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html + * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html + * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html + * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html - * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html - * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html + * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html + * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html * * @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUT.html * @see https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html @@ -2756,8 +2835,10 @@ public function putObjectTagging($input): PutObjectTaggingOutput * * > **Directory buckets** - For directory buckets, you must make requests for this API operation to the Zonal endpoint. * > These endpoints support virtual-hosted-style requests in the format - * > `https://*bucket_name*.s3express-*az_id*.*region*.amazonaws.com/*key-name*`. Path-style requests are not supported. - * > For more information, see Regional and Zonal endpoints [^5] in the *Amazon S3 User Guide*. + * > `https://*bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com/*key-name*`. Path-style requests are not + * > supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for + * > directory buckets in Availability Zones [^5] in the *Amazon S3 User Guide*. For more information about endpoints in + * > Local Zones, see Available Local Zone for directory buckets [^6] in the *Amazon S3 User Guide*. * * - `Permissions`: * @@ -2769,17 +2850,17 @@ public function putObjectTagging($input): PutObjectTaggingOutput * * These permissions are required because Amazon S3 must decrypt and read data from the encrypted file parts before * it completes the multipart upload. For more information about KMS permissions, see Protecting data using - * server-side encryption with KMS [^6] in the *Amazon S3 User Guide*. For information about the permissions - * required to use the multipart upload API, see Multipart upload and permissions [^7] and Multipart upload API and - * permissions [^8] in the *Amazon S3 User Guide*. + * server-side encryption with KMS [^7] in the *Amazon S3 User Guide*. For information about the permissions + * required to use the multipart upload API, see Multipart upload and permissions [^8] and Multipart upload API and + * permissions [^9] in the *Amazon S3 User Guide*. * - **Directory bucket permissions** - To grant access to this API operation on a directory bucket, we recommend that - * you use the `CreateSession` [^9] API operation for session-based authorization. Specifically, you grant the + * you use the `CreateSession` [^10] API operation for session-based authorization. Specifically, you grant the * `s3express:CreateSession` permission to the directory bucket in a bucket policy or an IAM identity-based policy. * Then, you make the `CreateSession` API call on the bucket to obtain a session token. With the session token in * your request header, you can make API requests to this operation. After the session token expires, you make * another `CreateSession` API call to generate a new session token for use. Amazon Web Services CLI or SDKs create * session and refresh the session token automatically to avoid service interruptions when a session expires. For - * more information about authorization, see `CreateSession` [^10]. + * more information about authorization, see `CreateSession` [^11]. * * If the object is encrypted with SSE-KMS, you must also have the `kms:GenerateDataKey` and `kms:Decrypt` * permissions in IAM identity-based policies and KMS key policies for the KMS key. @@ -2790,7 +2871,7 @@ public function putObjectTagging($input): PutObjectTaggingOutput * header in the upload part request. Amazon S3 checks the part data against the provided MD5 value. If they do not * match, Amazon S3 returns an error. If the upload request is signed with Signature Version 4, then Amazon Web * Services S3 uses the `x-amz-content-sha256` header as a checksum instead of `Content-MD5`. For more information see - * Authenticating Requests: Using the Authorization Header (Amazon Web Services Signature Version 4) [^11]. + * Authenticating Requests: Using the Authorization Header (Amazon Web Services Signature Version 4) [^12]. * * > **Directory buckets** - MD5 is not supported by directory buckets. You can use checksum algorithms to check * > object integrity. @@ -2809,7 +2890,7 @@ public function putObjectTagging($input): PutObjectTaggingOutput * Server-side encryption is supported by the S3 Multipart Upload operations. Unless you are using a * customer-provided encryption key (SSE-C), you don't need to specify the encryption parameters in each UploadPart * request. Instead, you only need to specify the server-side encryption parameters in the initial Initiate - * Multipart request. For more information, see CreateMultipartUpload [^12]. + * Multipart request. For more information, see CreateMultipartUpload [^13]. * * If you request server-side encryption using a customer-provided encryption key (SSE-C) in your initiate multipart * upload request, you must provide identical encryption information in each part upload using the following request @@ -2819,7 +2900,7 @@ public function putObjectTagging($input): PutObjectTaggingOutput * - x-amz-server-side-encryption-customer-key * - x-amz-server-side-encryption-customer-key-MD5 * - * For more information, see Using Server-Side Encryption [^13] in the *Amazon S3 User Guide*. + * For more information, see Using Server-Side Encryption [^14] in the *Amazon S3 User Guide*. * - **Directory buckets ** - For directory buckets, there are only two supported options for server-side encryption: * server-side encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and server-side encryption with KMS keys * (SSE-KMS) (`aws:kms`). @@ -2836,34 +2917,36 @@ public function putObjectTagging($input): PutObjectTaggingOutput * * - `HTTP Host header syntax`: * - * **Directory buckets ** - The HTTP Host header syntax is `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. + * **Directory buckets ** - The HTTP Host header syntax is + * `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. * * The following operations are related to `UploadPart`: * - * - CreateMultipartUpload [^14] - * - CompleteMultipartUpload [^15] - * - AbortMultipartUpload [^16] - * - ListParts [^17] - * - ListMultipartUploads [^18] + * - CreateMultipartUpload [^15] + * - CompleteMultipartUpload [^16] + * - AbortMultipartUpload [^17] + * - ListParts [^18] + * - ListMultipartUploads [^19] * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html - * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html - * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html - * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions - * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html + * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html + * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html + * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html - * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html - * [^12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html - * [^13]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html - * [^14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html - * [^15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html - * [^16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html - * [^17]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html - * [^18]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html + * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + * [^12]: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html + * [^13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html + * [^14]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html + * [^15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html + * [^16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html + * [^17]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html + * [^18]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html + * [^19]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html * * @see http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPart.html * @see https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html @@ -2918,14 +3001,16 @@ public function uploadPart($input): UploadPartOutput * * > **Directory buckets** - For directory buckets, you must make requests for this API operation to the Zonal endpoint. * > These endpoints support virtual-hosted-style requests in the format - * > `https://*bucket_name*.s3express-*az_id*.*region*.amazonaws.com/*key-name*`. Path-style requests are not supported. - * > For more information, see Regional and Zonal endpoints [^5] in the *Amazon S3 User Guide*. + * > `https://*bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com/*key-name*`. Path-style requests are not + * > supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for + * > directory buckets in Availability Zones [^5] in the *Amazon S3 User Guide*. For more information about endpoints in + * > Local Zones, see Available Local Zone for directory buckets [^6] in the *Amazon S3 User Guide*. * * - `Authentication and authorization`: * * All `UploadPartCopy` requests must be authenticated and signed by using IAM credentials (access key ID and secret * access key for the IAM identities). All headers with the `x-amz-` prefix, including `x-amz-copy-source`, must be - * signed. For more information, see REST Authentication [^6]. + * signed. For more information, see REST Authentication [^7]. * * **Directory buckets** - You must use IAM credentials to authenticate and authorize your access to the * `UploadPartCopy` API operation, instead of using the temporary security credentials through the `CreateSession` API @@ -2949,8 +3034,8 @@ public function uploadPart($input): UploadPartOutput * permissions for the `kms:Decrypt` action on the `UploadPart` and `UploadPartCopy` APIs. These permissions are * required because Amazon S3 must decrypt and read data from the encrypted file parts before it completes the * multipart upload. For more information about KMS permissions, see Protecting data using server-side encryption - * with KMS [^7] in the *Amazon S3 User Guide*. For information about the permissions required to use the - * multipart upload API, see Multipart upload and permissions [^8] and Multipart upload API and permissions [^9] + * with KMS [^8] in the *Amazon S3 User Guide*. For information about the permissions required to use the + * multipart upload API, see Multipart upload and permissions [^9] and Multipart upload API and permissions [^10] * in the *Amazon S3 User Guide*. * * - **Directory bucket permissions** - You must have permissions in a bucket policy or an IAM identity-based policy @@ -2967,16 +3052,16 @@ public function uploadPart($input): UploadPartOutput * If the object is encrypted with SSE-KMS, you must also have the `kms:GenerateDataKey` and `kms:Decrypt` * permissions in IAM identity-based policies and KMS key policies for the KMS key. * - * For example policies, see Example bucket policies for S3 Express One Zone [^10] and Amazon Web Services Identity - * and Access Management (IAM) identity-based policies for S3 Express One Zone [^11] in the *Amazon S3 User Guide*. + * For example policies, see Example bucket policies for S3 Express One Zone [^11] and Amazon Web Services Identity + * and Access Management (IAM) identity-based policies for S3 Express One Zone [^12] in the *Amazon S3 User Guide*. * * - `Encryption`: * * - **General purpose buckets ** - For information about using server-side encryption with customer-provided - * encryption keys with the `UploadPartCopy` operation, see CopyObject [^12] and UploadPart [^13]. + * encryption keys with the `UploadPartCopy` operation, see CopyObject [^13] and UploadPart [^14]. * - **Directory buckets ** - For directory buckets, there are only two supported options for server-side encryption: * server-side encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and server-side encryption with KMS keys - * (SSE-KMS) (`aws:kms`). For more information, see Protecting data with server-side encryption [^14] in the *Amazon + * (SSE-KMS) (`aws:kms`). For more information, see Protecting data with server-side encryption [^15] in the *Amazon * S3 User Guide*. * * > For directory buckets, when you perform a `CreateMultipartUpload` operation and an `UploadPartCopy` operation, @@ -2985,7 +3070,7 @@ public function uploadPart($input): UploadPartOutput * * S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets to * directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through - * UploadPartCopy [^15]. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a + * UploadPartCopy [^16]. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a * KMS-encrypted object. * * - `Special errors`: @@ -3004,38 +3089,40 @@ public function uploadPart($input): UploadPartOutput * * - `HTTP Host header syntax`: * - * **Directory buckets ** - The HTTP Host header syntax is `*Bucket_name*.s3express-*az_id*.*region*.amazonaws.com`. + * **Directory buckets ** - The HTTP Host header syntax is + * `*Bucket-name*.s3express-*zone-id*.*region-code*.amazonaws.com`. * * The following operations are related to `UploadPartCopy`: * - * - CreateMultipartUpload [^16] - * - UploadPart [^17] - * - CompleteMultipartUpload [^18] - * - AbortMultipartUpload [^19] - * - ListParts [^20] - * - ListMultipartUploads [^21] + * - CreateMultipartUpload [^17] + * - UploadPart [^18] + * - CompleteMultipartUpload [^19] + * - AbortMultipartUpload [^20] + * - ListParts [^21] + * - ListMultipartUploads [^22] * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html * [^4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html * [^5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html - * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html - * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html - * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html - * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions - * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html - * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html - * [^12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html - * [^13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html - * [^14]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html - * [^15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html - * [^16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html - * [^17]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html - * [^18]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html - * [^19]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html - * [^20]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html - * [^21]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html + * [^6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html + * [^7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html + * [^8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html + * [^9]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html + * [^10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions + * [^11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html + * [^12]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html + * [^13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html + * [^14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html + * [^15]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html + * [^16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html + * [^17]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html + * [^18]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html + * [^19]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html + * [^20]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html + * [^21]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html + * [^22]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html * * @see http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html * @see https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html diff --git a/src/ValueObject/BucketInfo.php b/src/ValueObject/BucketInfo.php index 2411f36..86735a4 100644 --- a/src/ValueObject/BucketInfo.php +++ b/src/ValueObject/BucketInfo.php @@ -17,7 +17,7 @@ final class BucketInfo { /** - * The number of Availability Zone that's used for redundancy for the bucket. + * The number of Zone (Availability Zone or Local Zone) that's used for redundancy for the bucket. * * @var DataRedundancy::*|null */ diff --git a/src/ValueObject/CreateBucketConfiguration.php b/src/ValueObject/CreateBucketConfiguration.php index caeb3f9..81c5d8d 100644 --- a/src/ValueObject/CreateBucketConfiguration.php +++ b/src/ValueObject/CreateBucketConfiguration.php @@ -29,10 +29,15 @@ final class CreateBucketConfiguration /** * Specifies the location where the bucket will be created. * - * For directory buckets, the location type is Availability Zone. + * **Directory buckets ** - The location type is Availability Zone or Local Zone. When the location type is Local Zone, + * your Local Zone must be in opt-in status. Otherwise, you get an HTTP `400 Bad Request` error with the error code + * `Access denied`. To learn more about opt-in Local Zones, see Opt-in Dedicated Local Zones [^1]in the *Amazon S3 User + * Guide*. * * > This functionality is only supported by directory buckets. * + * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/opt-in-directory-bucket-lz.html + * * @var LocationInfo|null */ private $location; diff --git a/src/ValueObject/LocationInfo.php b/src/ValueObject/LocationInfo.php index 8c04bcd..517f85c 100644 --- a/src/ValueObject/LocationInfo.php +++ b/src/ValueObject/LocationInfo.php @@ -8,8 +8,8 @@ /** * Specifies the location where the bucket will be created. * - * For directory buckets, the location type is Availability Zone. For more information about directory buckets, see - * Directory buckets [^1] in the *Amazon S3 User Guide*. + * For directory buckets, the location type is Availability Zone or Local Zone. For more information about directory + * buckets, see Directory buckets [^1] in the *Amazon S3 User Guide*. * * > This functionality is only supported by directory buckets. * @@ -27,8 +27,8 @@ final class LocationInfo /** * The name of the location where the bucket will be created. * - * For directory buckets, the name of the location is the AZ ID of the Availability Zone where the bucket will be - * created. An example AZ ID value is `usw2-az1`. + * For directory buckets, the name of the location is the Zone ID of the Availability Zone (AZ) or Local Zone (LZ) where + * the bucket will be created. An example AZ ID value is `usw2-az1`. * * @var string|null */