Configure account capabilities
Use capabilities and compatibility policies to adapt S3Client commands and requests to the features your S3 service supports.
Capabilities describe the S3 features supported by the service. Policies specify the requests and values accepted for a bucket, its region, or its endpoint. These settings tell S3Client which options to offer; they do not grant permissions or enable features on the service.
The provider preset supplies the account’s initial values. Amazon S3 configures the features supported by Amazon S3. S3-compatible storage disables optional capabilities and provides a basic configuration to complete for your service. Custom presets use the values in their files. Check these settings: S3Client does not automatically detect available features. You can also explicitly apply a preset to existing accounts to replace their service settings.
Basic shared actions, such as reading and uploading objects, do not all have capability checkboxes. Disabling an option may hide or restrict dependent commands, but does not remove data or configuration already present on S3.
Open and save the settings
- In the main window, choose File > Accounts….
- Select the account and click Edit….
- In Account, open Capabilities.
- Select a category from the list on the left.
- Check supported capabilities or edit the relevant policy. An unchecked box declares the feature unavailable; hover over or select a row to read its explanation.
- Click OK in Account to save, or Cancel to discard all changes.
- Reopen the relevant properties or command to check the options offered for that bucket’s context.
Incompatible settings may be rejected with details. Invalid ACL policy: makes OK and Test connection unavailable. A connection test does not validate every capability: it checks only a read request. See Add and manage accounts.
General
| Capability | Effect |
|---|---|
| Presigned URLs | Allows generating presigned URLs for temporary authenticated access. The identity still needs permissions and valid credentials. |
| BitTorrent download metadata | Declares support for GetObjectTorrent to retrieve BitTorrent download metadata. Enable it only if the service accepts this legacy API. |
| Standard S3 resource identifiers (ARNs) | Declares that standard S3 ARNs, such as arn:aws:s3:::bucket and arn:aws:s3:::bucket/key, are usable. S3Client can derive a missing ARN using this format. |
Transfers
| Capability | Effect and dependency |
|---|---|
| Multipart upload | Allows uploads in multiple parts. Without it, files exceeding the single-request limit cannot be uploaded. |
| Multipart server-side copy | Allows UploadPartCopy to copy data on the server in multiple parts. Requires Multipart upload. |
| Copy only if the source ETag matches | Adds x-amz-copy-source-if-match to CopyObject requests to reject a source whose ETag differs from the observation. When unchecked, single-request server copies proceed without this condition. |
| Copy parts only if the source ETag matches | Adds the same condition to each UploadPartCopy request. Requires Multipart server-side copy, but is independent of the single-request copy condition. When unchecked, server-side copies of parts proceed without this condition. |
| List incomplete multipart uploads | Allows listing unfinished uploads to locate or clean them up. Requires Multipart upload. |
| Read uploaded part sizes and count | Allows HeadObject with partNumber and reading the part count of a completed multipart object. |
| Write only if the object does not exist | Allows If-None-Match: * on PutObject, CopyObject, and CompleteMultipartUpload to reject writes when a current object exists. Requires AWS Signature v4 in the region being used. |
| Replace only if the destination ETag matches | Allows If-Match on the same operations to reject replacements when the destination ETag has changed. Requires AWS Signature v4. |
An existing account without Copy only if the source ETag matches and Copy parts only if the source ETag matches keeps them disabled, including an Amazon S3 account. Installing or replacing a preset does not change that account; enable the capabilities in its configuration if the service supports them, or explicitly apply a suitable preset.
Source conditions use the destination account’s settings, even when a copy uses the other account’s credentials. Disabling them retains preliminary checks but permits copying a source changed afterwards; a multipart copy can combine revisions. This also affects moves and rewrites. Download, destination and deletion conditions remain independent. See S3 copy conditions.
Listing & deletion
| Capability | Effect and dependency |
|---|---|
| Object listing (ListObjectsV2) | Uses ListObjectsV2 with continuation tokens. When disabled, listing uses ListObjects. |
| Start object listing after a key | Allows StartAfter in ListObjectsV2, including for parallel scans. Requires Object listing (ListObjectsV2). |
| Bucket listing with pagination | Allows max-buckets and continuation-token to paginate ListBuckets. |
| Delete multiple objects | Allows DeleteObjects to batch deletions of current keys without a versionId in one request. In a versioned bucket, these deletions may create delete markers. |
| Delete multiple object versions | Also allows batching deletions with an explicit versionId: data versions, delete markers, and null versions. Requires Delete multiple objects. Without this capability, S3Client deletes these targets individually using DeleteObject, while continuing to batch current keys. |
| Single-object deletion with an ETag condition | Allows DeleteObject with If-Match. Deletion is rejected if the object’s ETag has changed. |
| Batch deletion with ETag conditions | Allows an ETag condition for each object in DeleteObjects. Requires Delete multiple objects. |
Disabling Multipart upload, Object listing (ListObjectsV2), Delete multiple objects, or Object versions automatically unchecks and disables dependent capabilities. Enabling them again does not automatically recheck those dependencies.
Data protection
| Capability | Effect |
|---|---|
| Object versions | Allows listing, reading, copying and individually deleting object versions. |
| Read bucket versioning | Allows reading the bucket versioning state. |
| Change bucket versioning | Allows enabling or suspending bucket versioning. |
| Read bucket Object Lock | Read the bucket Object Lock state and default retention. |
| Enable Object Lock on existing buckets | Permanently enable Object Lock on an existing bucket. |
| Change default retention | Set or remove default retention for future versions. |
| Create buckets with Object Lock | Enable Object Lock in the bucket creation request. The creation option is unchecked by default. |
| Read object retention | Read a version’s retention. |
| Change object retention | Change a version’s retention. |
| Read object legal hold | Read a version’s legal hold. |
| Change object legal hold | Change a version’s legal hold. |
| Protect simple uploads | Send protection with PutObject. |
| Protect multipart uploads | Send protection with CreateMultipartUpload, also used for multipart copies. The transfer also requires Multipart upload. |
| Protect server-side copies | Send protection with CopyObject. |
| Bypass Governance retention | Allow an explicit Governance bypass request when changing retention or deleting versions. |
The three versioning capabilities are independent: Object versions provides access to versions, Read bucket versioning reads the bucket state, and Change bucket versioning changes it. Enabling a capability neither changes the bucket nor grants remote permissions.
Object Lock capabilities require Object versions. All except Create buckets with Object Lock and Read bucket Object Lock also require Read bucket Object Lock. Change object retention requires Read object retention; Change object legal hold requires Read object legal hold.
For Backblaze B2, enable Object versions and Read bucket versioning, but leave Change bucket versioning off.
Leave Existing-bucket activation token (only if required by the service): empty unless the service requires a value to enable Object Lock on an existing bucket, such as 1 for Backblaze B2. This is not an access key. S3Client does not send it during bucket creation or when changing default retention.
Object tags
Configure Read tags and Tag editing separately:
- Unavailable: the corresponding read or edit operation is unavailable.
- Current object only: the feature targets the current object without
versionId. - Current object and specific versions: it also targets a selected version using
versionId.
Editing requires reading the same targets. Increasing Tag editing also increases Read tags when necessary; reducing Read tags reduces Tag editing when necessary. Available reading with Tag editing > Unavailable lets you view tags without editing them.
Remove tags selects the request used to clear tags: DeleteObjectTagging or PutObjectTagging with an empty TagSet. S3Client selects the method before the operation and does not try another method after a refusal.
Current object verification selects how S3Client checks that the tags it read belong to the current object:
- Response version header uses the version identity returned with the tags without an additional HEAD check. This is the Amazon S3 setting.
- Versioned read and HEAD check requires Read tags > Current object and specific versions. When a current-object observation identifies a version, S3Client reads its tags with
versionId, then adds a HEAD to check that it is still current. This requires version tag read and HEAD permissions, notablys3:GetObjectVersionTaggingands3:GetObjecton Amazon S3. A contradiction or a missing object stops the operation.
Selecting Versioned read and HEAD check automatically sets Read tags to Current object and specific versions. Reducing that scope restores Response version header. Versioned read and HEAD check keeps the logical target: a current-object change still omits versionId. An immutable exact version does not add this HEAD; a mutable null version must also retain the same content identity. These checks do not make a read followed by a write atomic.
Send tags with PutObject and Send tags with CreateMultipartUpload separately declare support for sending tags with content, including relayed and multipart copies. These options do not enable Multipart upload and do not require editing existing tags.
CopyObject tags offers:
- Unavailable: sending tags with
CopyObjectis unavailable. - Independent metadata and tagging directives: metadata and tagging directives can be selected independently.
- Tagging directive must match the metadata directive: the directives must match. When replacing metadata, S3Client reads the source tags before copying so it can send and preserve them. This requires source tag reading and the corresponding permissions; source tag editing is not required.
A simple copy that preserves both metadata and tags on the server does not require this additional read. See properties preserved during copies.
Bucket tags
Tag editing API offers:
- Unavailable: no reading or editing of bucket tags.
- S3 bucket tagging API:
GetBucketTagging,PutBucketTagging, andDeleteBucketTaggingfor general purpose buckets. - S3 Control resource tagging:
ListTagsForResource,TagResource, andUntagResource. Configure Account ID and S3 Control routes in the account connection settings. Reading and editing tags remain unavailable until the configuration is complete.
Bucket creation
| Capability | Effect |
|---|---|
| Creating an existing bucket may reset its ACL | Declares service behavior, not a permission: recreating an owned bucket may reset its ACL. S3Client checks the owned bucket list before creation to avoid that reset. |
| Create buckets in the account regional namespace | Allows CreateBucket with x-amz-bucket-namespace: account-regional. Also requires Account ID under Account and Account Regional bucket namespace available in the selected region. |
Object Ownership
| Capability | Effect |
|---|---|
| Read Object Ownership settings | Allows GetBucketOwnershipControls to determine object ownership and ACL use. |
| Change Object Ownership settings | Allows PutBucketOwnershipControls on an existing bucket. |
| Set Object Ownership when creating a bucket | Allows selecting BucketOwnerEnforced, BucketOwnerPreferred, or ObjectWriter in CreateBucket. |
These settings are separate from ACL policy. A policy declaring ACLs available does not make them editable in a bucket where BucketOwnerEnforced disables them. See ACLs and object ownership.
Policies by context
Encryption policies, Storage classes, Lifecycle, and Static website hosting support multiple policies. Policy selects the one you are editing; Account default policy selects the one used when no more specific assignment matches. Changing Policy alone does not change the default.
Buttons for adding, duplicating where available, and removing policies are beside Policy. Each family accepts up to 32 policies, with unique identifiers. Keep at least one policy. To remove a policy used in Assignments, first remove or change its assignments. In Storage classes and Encryption policies, also choose another default before removing the default policy; in Lifecycle and Static website hosting, the first remaining policy becomes the default if you remove the previous default.
To create a policy in Storage classes, click the add button beside Policy, enter Policy identifier in Add storage class policy, and click OK. The new policy initially contains a STANDARD class. In the other three categories, Add generates the identifier: configure Features before making the policy the default or assigning it. Options start unchecked, except for the two rule statuses and three versioning states under Lifecycle > Rule constraints; adjust these to match your service. Duplicate, available in Encryption policies, Lifecycle, and Static website hosting, copies the selected policy’s settings under a new identity.
To assign a policy:
- Open Assignments in the relevant category.
- Click Add or Add…, depending on the category.
- In Policy assignment, choose Applies to and Policy.
- Complete the displayed fields according to the criteria below.
- Click OK to add the assignment, then OK in Account to save.
| Applies to, in priority order | Required fields |
|---|---|
| Exact bucket | Endpoint and Bucket name. |
| Endpoint and bucket kind | Endpoint and Bucket kind. |
| Region and bucket kind | Region location and Bucket kind. |
| Bucket kind | Bucket kind. |
| Endpoint | Endpoint. |
| Region | Region location. |
S3Client applies only the policy from the matching assignment with the highest priority in this table. If none matches, the default policy applies. Use the region code, not its local name; the endpoint is a hostname without a scheme or path. Bucket kind offers General purpose, Directory, and Outposts. Choosing a bucket type specifies where the policy applies; it does not by itself allow S3Client to browse that type of bucket.
Assignments cannot duplicate exactly the same criteria. Each family accepts up to 1,000 assignments. Select a row and use Edit or Edit…, depending on the category, to change it, or Remove to delete it.
Encryption
In the Object encryption modes list, the SSE-S3, SSE-KMS, DSSE-KMS, and SSE-C checkboxes declare available object encryption modes. In the Encryption API operations list, Read bucket encryption, Set bucket encryption, and Remove bucket encryption configuration separately declare APIs for default bucket encryption. Update object encryption without copying declares UpdateObjectEncryption, which changes encryption without copying the data.
Encryption policies
In this category, open Features and select the policy to edit under Policy. The options specify the requests and parameters accepted by that policy. These checkboxes do not replace the general capabilities or required KMS permissions:
| Group | Settings |
|---|---|
| SSE-S3 object writes, SSE-KMS object writes, DSSE-KMS object writes | For each mode, check accepted operations: Single-request upload, Start multipart upload, Copy object. |
| SSE-C reading | Read object data and Read object metadata allow supplying the key to read content or metadata. |
| SSE-C upload | Single-request upload, Start multipart upload, Upload a part, and Complete multipart upload allow supplying the key for the relevant upload steps. Complete multipart upload indicates that the service accepts SSE-C key parameters during completion; this option does not enable Multipart upload. |
| SSE-C copy destination | Copy object and Copy a part allow supplying the key to encrypt the destination of a server-side copy. |
| SSE-C copy source | Copy object and Copy a part allow supplying the source read key for a server-side copy. |
| KMS context | Allows an encryption context for Single-request upload, Start multipart upload, and Copy object. |
| Bucket Key requests | Allows the S3 Bucket Key option on those three operations. |
| Bucket encryption configuration | Select accepted default modes: SSE-S3, SSE-KMS, DSSE-KMS, plus Blocked encryption types and Bucket Key default where supported. |
| Bucket Key updates | Bucket Key during encryption update allows that option in UpdateObjectEncryption without enabling the operation itself. |
SSE-C requires supplying the key for the relevant operations; this setting does not store the key. Choose the default policy or assignments appropriate for the bucket before saving.
Storage classes
A policy describes storage class names actually accepted by the service, the operations offering them, access to archived objects, and allowed lifecycle transitions. Adding a class in S3Client does not create a class on the service.
In Classes, choose Default class, then use Add…, Edit…, or Remove on the list. To add or edit a class, enter Storage class name in Storage class, configure the following fields, and click OK:
| Setting | Values and effect |
|---|---|
| Select this class during | Single-request upload, Start multipart upload, Copy object: operations accepting this destination class. |
| Change storage class on the same object | Allows this class as a different destination class when copying back to the same bucket and key. This is separate from choosing a class for an upload or a copy to another key. It also requires a write path that is usable for the object and allowed for this class under Select this class during. |
| Access strategy | Always direct for immediate access; Restore required for prior restoration; Archive state dependent when archive state determines the need for restoration. |
| Archive-state headers | x-amz-restore and x-amz-archive-status: declare headers used to determine state. At least one is required for Archive state dependent. |
| Restore behavior | Unsupported, Temporary readable copy, or Move back to an immediately accessible tier. A temporary copy expires after its lifetime; moving to an accessible tier has no temporary copy lifetime. |
| Restored copy lifetime (Days) > Parameter | For Temporary readable copy, choose Optional or Required. The other behaviors force Forbidden and disable this group. This specifies availability duration, not restoration time. |
| Accepted range | Check Minimum or Maximum to set positive bounds in days; the minimum must not exceed the maximum. |
| Retrieval tier > Parameter | Forbidden, Optional, or Required. If accepted, check at least one of Expedited, Standard, and Bulk, according to service support. |
| Restore a specific object version | Declares restoration with a version ID. Available when restoration is supported. |
Class names are unique within a policy. Before removing the default class, select another; before removing a class referenced by a transition, remove it from that transition. Each policy is limited to 100 classes and 1,000 transitions.
Enter the exact name accepted by the service, using ASCII characters without spaces, up to 256 characters. A new class starts with the placeholder name NEW_CLASS, Always direct access, no upload or copy operations selected, Change storage class on the same object unchecked, and Unsupported restoration. Replace the name and configure the operations before saving. Renaming a class updates its references in the policy’s default class and transitions; it does not change remote objects.
Selecting Unsupported clears the duration, retrieval tier, and version settings. Selecting Forbidden for a parameter clears its dependent values. Configure these values again if you subsequently enable the options.
Change storage class on the same object is evaluated for each destination class. The actual write path must be available and allowed for that class: Copy object for a single-request server-side copy, Single-request upload for a single-request relay through S3Client, or Start multipart upload for a multipart transfer. Multipart transfers require Multipart upload under Transfers; Multipart server-side copy is required only for server-side multipart copies. Properties and recursive changes offer only permitted destinations. Clearing this option does not block a rewrite that preserves the existing class.
Default class describes the destination class used when S3Client lets the service choose, without an x-amz-storage-class header. It also interprets a successful HeadObject response that provides no storage class header. A class missing from a listing remains unknown: S3Client reads metadata through HeadObject before a read or rewrite that depends on this information. A missing listing value therefore does not mean STANDARD. An incorrect default can misrepresent the expected destination class or the class interpreted after HEAD; adjust the policy and its assignments for the bucket.
In Transitions, click Add… or Edit…. Storage class transition requires distinct Source class and Target class values, at least one scope (Current versions, Noncurrent versions), and at least one compatible versioning state (Never enabled, Suspended, Enabled).
Check Minimum days since object creation, Minimum days since version became noncurrent, and Minimum time in source class to declare minimum delays in days, starting at 0. The first two depend on the selected scope; unchecking the scope clears the corresponding delay. Default minimum object size sets a size in bytes, starting at 0; An S3 size filter may override the default declares that an explicit size filter may replace it and is available only when the minimum size is checked. These fields declare accepted constraints; they do not create a transition rule in a bucket.
In Supported operations, separately declare:
- Restore status in ListObjects, Restore status in ListObjectsV2, and Restore status in ListObjectVersions, to request the optional
RestoreStatusattribute in those listings. - Read Intelligent-Tiering configuration, Create or update Intelligent-Tiering configuration, List Intelligent-Tiering configurations, and Delete Intelligent-Tiering configuration, for the corresponding APIs.
Lifecycle
Read bucket lifecycle rules, Create or replace bucket lifecycle rules, and Remove all bucket lifecycle rules declare APIs for reading, replacing all rules, and deleting the configuration. Removing the configuration stops future actions; the request does not itself delete objects.
The selected policy’s Features tab specifies accepted rule elements:
| Group | Options |
|---|---|
| Filters | Empty filter for the whole bucket; Object key prefix; Tags; Object size greater than a threshold and Object size less than a threshold for strict comparisons in bytes; AND combinations to combine criteria; Combined minimum and maximum object sizes to use both size bounds in one rule. The last option requires both size filters and AND combinations. |
| Current version expiration | After a number of days since creation; At an absolute date in UTC; Remove delete markers with no remaining versions. |
| Noncurrent versions | Expiration to permanently delete noncurrent versions; Retain newer noncurrent versions from deletion and Keep newer noncurrent versions in their storage class to retain a number of newer versions. Both the count and age thresholds must then be exceeded. |
| Transition triggers | Current version after days, Current version at a date, and Noncurrent version after days. Available classes and transitions also come from Storage classes. |
| Combinations | Multiple action types, Multiple current transitions, Multiple noncurrent transitions, for combinations accepted in a rule. |
| Maintenance | Abort incomplete multipart uploads, after a delay from initiation. |
| Bucket options | Default transition minimum: 128 KiB for all classes or Default transition minimum varies by storage class. The first blocks transitions below 128 KiB by default; the second allows them by default only to Glacier Flexible Retrieval and Deep Archive. Explicit size filters may override these defaults. |
Under Features > Rule constraints, select the supported rule statuses (Enabled rules, Disabled rules) and bucket states (Buckets never versioned, Buckets with suspended versioning, Buckets with enabled versioning). Require paired expiration rules requires After a number of days and Remove delete markers with no remaining versions: check these two options first. It requires two rules with the same filter and status: expiration after a number of days and removal of expired delete markers. Rule identifiers do not determine pairing.
For Backblaze B2, the lifecycle policy allows only enabled rules on buckets with enabled versioning and requires Require paired expiration rules.
In Limits, check Maximum tag conditions per rule to set a limit from 1 to 10, and Maximum actions per rule to set a positive limit. An unchecked limit adds no bound in this policy; service and S3 format limits still apply.
Dependencies are adjusted automatically. Maximum tag conditions per rule requires Tags; Retain newer noncurrent versions from deletion requires Expiration; Keep newer noncurrent versions in their storage class and Multiple noncurrent transitions require Noncurrent version after days; Multiple current transitions requires Current version after days or Current version at a date. Unchecking a prerequisite clears dependent settings, which you must restore if you enable it again.
These declarations do not schedule expiration. Remote rules are created in bucket properties and can permanently delete data; consult lifecycle rules before applying them.
Static website hosting
In the policy’s Features, declare GetBucketWebsite for reading, PutBucketWebsite for creating or replacing, and DeleteBucketWebsite for removing the configuration. RedirectAllRequestsTo allows redirecting all requests to another host; RoutingRules allows conditional redirects.
The properties editor requires a successful read before writing or deleting. Checking only PutBucketWebsite is therefore insufficient to edit the website in the interface. These options neither publish a site nor make objects public. Use bucket properties for remote configuration.
Bucket access logging
| Capability | Effect |
|---|---|
| Read bucket access logging | Allows GetBucketLogging. |
| Set bucket access logging | Allows PutBucketLogging to enable, change, or disable logging. |
| Set access log object key format | Allows TargetObjectKeyFormat to choose the format of log object keys. |
| Set access log target grants | Allows TargetGrants, ACL grants for the log destination. |
The last two options supplement write configuration; they do not enable logging on their own. Destination bucket permissions and ACL state still apply. See Log bucket access.
The compatibility dropdown offers Strict S3 XML or Preserve known logging additions. The second option preserves known fields in a standard logging configuration, such as ObjectRollTime and RecordsBatchSize, when you update it. Disabling logging removes them. It does not offer controls to create these fields. Unknown additions remain uneditable. See access logging.
ACL policy
Enable ACL operations for this account enables local ACL use. Unchecking it disables the policy tabs without revoking remote permissions; their settings are retained. These settings describe service compatibility; they do not replace the resource ACL editor.
When this option is unchecked, properties no longer offer an ACL tab. Ordinary transfers and property rewrites use the destination default without ACL requests or headers. This does not guarantee preservation of existing ACLs if the service still uses them. An explicit ACL request or an incompatible preservation requirement is still rejected. See the effects of local deactivation.
Set access log target grants remains independent of this option: TargetGrants belong to the logging configuration, not to resource ACL operations. The destination’s Bucket owner enforced mode still imposes its restrictions.
| Tab | Settings and effect |
|---|---|
| Supported APIs | Declares Read bucket ACL, Replace bucket ACL, Read object ACL, and Replace object ACL. |
| Scope and response behavior | Object ACL read scope: Not supported, Current object only, Current object and specific versions. Object ACL write scope offers the same scopes. Bucket ACL response and Object ACL response specify Exact stored ACL, Effective ACL (potentially filtered), Object ACL derived from the bucket ACL, or Generated ACL response (not stored), as allowed for that response type. A filtered or generated response may not represent the entire stored ACL. |
| Request forms | For each write Operation, check Canned ACL header, Grant headers, or AccessControlPolicy XML body. XML is restricted to dedicated ACL replacement operations, not object uploads or copies. |
| Canned ACLs | For each Operation, check accepted canned ACLs from private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, and bucket-owner-full-control. This does not apply them to objects. |
| Explicit grants | For each Operation, declare accepted permissions (READ, WRITE, READ_ACP, WRITE_ACP) and URIs under Allowed groups, using Add…, Edit…, and Remove. Preferred encoding, available for dedicated ACL replacements, offers None, Grant headers, AccessControlPolicy XML body, or Try grant headers, then XML if unsupported. Adaptive mode falls back only according to configured incompatibility errors. |
| Compatibility | PUT ACL XML owner: Omit owner or Include the known resource owner. Maximum grants limits grant count, from 1 to 1,000. Ownership Controls responses associates HTTP status with Error code: 404 - No configuration keeps ACLs enabled; 501 - Unsupported API uses the configured ACL policy. |
| S3 groups | Add…, Edit…, and Remove manage predefined groups. In Add predefined group or Edit predefined group, enter Display name and Group URI, then click OK. These entries name groups available in the editor; allowed URIs per operation are still defined in Explicit grants. |
| Error rules | Add…, Edit…, and Remove manage known service responses. Each rule contains Operation, Write form or Any write form / none, Error code, Minimum HTTP status, Maximum HTTP status, and Action. Status codes range from 100 to 599. Actions are Require Object Ownership check, Mark operation as unsupported, or Mark request form as unsupported. They determine how a received response is handled, not account permissions. |
The Operation lists under Request forms, Canned ACLs, and Explicit grants offer Replace bucket ACL, Single-request upload, Copy object, Start multipart upload, and Replace object ACL. Buckets accept only private, public-read, public-read-write, and authenticated-read; the other three canned ACLs apply to objects. The WRITE permission and the http://acs.amazonaws.com/groups/s3/LogDelivery group are restricted to bucket operations. An incompatible choice blocks validation instead of being corrected automatically.
To save a rule under Error rules, meet the requirements for its Action:
- Require Object Ownership check requires a write operation and Any write form / none.
- Mark operation as unsupported requires Any write form / none and rejects the
AccessDeniedcode. - Mark request form as unsupported requires a specific write form compatible with the operation and rejects the
AccessDeniedcode.
Two rules for the same operation and error code cannot cover both the same HTTP statuses and the same write forms. Any write form / none covers all forms. Overlapping rules block validation.
ACL limits allow up to 1,000 values per collection and 7,000 error rules. Configure exact service error codes; do not treat an access error as an unsupported API declaration. Uploads and copies have their own ACL settings, separate from later ACL replacement. To change resource permissions, use ACLs and object ownership.
An enabled ACL policy requires at least one supported API. Object APIs require a corresponding read or write scope; read scope is independent of Object ACL response, so a bucket projection can cover the current object alone or explicit versions. Write forms must agree with the selected canned ACLs, permissions, and Preferred encoding. Try grant headers, then XML if unsupported requires both Grant headers and AccessControlPolicy XML body. Inconsistencies produce Invalid ACL policy: and block saving until corrected.
Read scope and response semantics are separate settings. To view bucket permissions projected onto object versions, select Current object and specific versions under Object ACL read scope, and Object ACL derived from the bucket ACL under Object ACL response, when supported by the service. This enables viewing, without editing or claiming exact preservation of an independent object ACL.
General request limits
Open File > Accounts…, select the account and choose Edit…. On the Account tab, the Connection group contains Maximum PUT header bytes and Maximum POST header bytes. These settings limit the complete headers of the corresponding requests, even when ACLs are disabled. 0, displayed as No configured limit, sets no limit. Oversized requests are rejected before being sent; the same limits also affect ACL encoding selection. Click OK to save.
An account created from Amazon S3 has a PUT limit of 8,192 bytes and no configured POST limit. S3-compatible storage leaves both limits unconfigured. Custom presets supply their own values; applying a preset to an existing account also replaces these limits.