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.
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.
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://amzn-s3-demo-bucket.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 in the
Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones 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, see Using MFA Delete in the Amazon S3 User
Guide. To see sample requests that use versioning, see Sample Request.
Directory buckets - MFA delete is not supported by directory buckets.
You can delete objects by explicitly calling DELETE Object or calling (PutBucketLifecycle) 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
General purpose bucket permissions - The following
permissions are required in your policies when your DeleteObjects request
includes specific headers.
s3:DeleteObject - To
delete an object from a bucket, you must always have the
s3:DeleteObject permission.
s3:DeleteObjectVersion - To delete a specific version of an object from a versioning-enabled
bucket, you must have the s3:DeleteObjectVersion permission.
If the s3:DeleteObject or s3:DeleteObjectVersion permissions are explicitly
denied in your bucket policy, attempts to delete any unversioned objects
result in a 403 Access Denied error.
Directory bucket 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. 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.
HTTP Host header syntax
Directory buckets - The HTTP Host header syntax is Bucket-name.s3express-zone-id.region-code.amazonaws.com.
You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.
The If-Match header is supported for both general purpose and directory buckets. IfMatchLastModifiedTime and IfMatchSize is only supported for directory buckets.
Example
Use a bare-bones client and the command you need to make an API call.
Base exception class for all service exceptions from S3 service.
Example: To delete an object (from a non-versioned bucket)
// The following example deletes an object from a non-versioned bucket. constinput = { Bucket:"ExampleBucket", Key:"HappyFace.jpg" }; constcommand = newDeleteObjectCommand(input); constresponse = awaitclient.send(command); /* response is { /* metadata only */ } */
Example: To delete an object
// The following example deletes an object from an S3 bucket. constinput = { Bucket:"examplebucket", Key:"objectkey.jpg" }; constcommand = newDeleteObjectCommand(input); constresponse = awaitclient.send(command); /* response is { /* empty */ } */
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
versionIdin the request. For more information about versioning-enabled buckets, see Deleting object versions from a versioning-enabled bucket.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 nullversionId, and all versions of the object have aversionId, Amazon S3 does not remove the object and only inserts a delete marker. To permanently delete an object that has aversionId, you must include the object’sversionIdin the request. For more information about versioning-suspended buckets, see Deleting objects from versioning-suspended buckets.Directory buckets - S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the
nullvalue of the version ID is supported by directory buckets. You can only specifynullto theversionIdquery 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://amzn-s3-demo-bucket.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 in the Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the Amazon S3 User Guide.To remove a specific version, you must use the
versionIdquery parameter. Using this query parameter permanently deletes the version. If the object deleted is a delete marker, Amazon S3 sets the response headerx-amz-delete-markerto 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-mfarequest header in the DELETEversionIdrequest. Requests that includex-amz-mfamust use HTTPS. For more information about MFA Delete, see Using MFA Delete in the Amazon S3 User Guide. To see sample requests that use versioning, see Sample Request.Directory buckets - MFA delete is not supported by directory buckets.
You can delete objects by explicitly calling DELETE Object or calling (PutBucketLifecycle) 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, ands3:PutLifeCycleConfigurationactions.Directory buckets - S3 Lifecycle is not supported by directory buckets.
General purpose bucket permissions - The following permissions are required in your policies when your
DeleteObjectsrequest includes specific headers.s3:DeleteObject- To delete an object from a bucket, you must always have thes3:DeleteObjectpermission.s3:DeleteObjectVersion- To delete a specific version of an object from a versioning-enabled bucket, you must have thes3:DeleteObjectVersionpermission.If the
s3:DeleteObjectors3:DeleteObjectVersionpermissions are explicitly denied in your bucket policy, attempts to delete any unversioned objects result in a403 Access Deniederror.Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the
CreateSessionAPI operation for session-based authorization. Specifically, you grant thes3express:CreateSessionpermission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make theCreateSessionAPI 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 anotherCreateSessionAPI 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, seeCreateSession.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
You must URL encode any signed header values that contain spaces. For example, if your header value is
my file.txt, containing two spaces aftermy, you must URL encode this value tomy%20%20file.txt.The
If-Matchheader is supported for both general purpose and directory buckets.IfMatchLastModifiedTimeandIfMatchSizeis only supported for directory buckets.Example
Use a bare-bones client and the command you need to make an API call.
Param: DeleteObjectCommandInput
DeleteObjectCommandInput
Returns
DeleteObjectCommandOutput
See
inputshape.responseshape.configshape.Throws
S3ServiceException
Base exception class for all service exceptions from S3 service.
Example: To delete an object (from a non-versioned bucket)
Example: To delete an object