Objects
Basic Operations with Objects
Retrieves a partial or complete list (with a maximum of 1000 objects per request) from a specified bucket. The request parameters can serve as selection criteria to filter and return a subset of objects from the bucket.
A 200 OK
response can contain either valid or invalid XML, so it's crucial to construct your application in such a way that it can correctly parse and handle the response content. In the resulting list, objects are organized in ascending order according to their key names.
Permissions
You must be the contract owner or an administrator to perform this operation. If not, they can grant you permission to perform the s3:ListBucket
operation using Bucket Policy.
The bucket name.
my-bucket
A delimiter is a character you use to group keys.
/
Requests IONOS Object Storage to encode the object keys in the response and specifies the encoding method to use. An object key may contain any Unicode character; however, XML 1.0 parser cannot parse some characters, such as characters with an ASCII value from 0 to 10. For characters that are not supported in XML 1.0, you can add this parameter to request that IONOS Object Storage encode the keys in the response.
Sets the maximum number of keys returned in the response. By default the operation returns up to 1000 key names. The response might contain fewer keys but will never contain more.
1000
Limits the response to keys that begin with the specified prefix.
folder/subfolder/
ContinuationToken indicates IONOS Object Storage that the list is being continued on this bucket with a token. ContinuationToken is obfuscated and is not a real key.
The owner field is not present in listV2 by default, if you want to return owner field with each key in the result then set the fetch owner field to true.
false
Possible values: StartAfter is where you want to start listing from. IONOS Object Storage starts listing after this specified key. StartAfter can be any key in the bucket.
GET /{Bucket} HTTP/1.1
Host: s3.eu-central-1.ionoscloud.com
Authorization: YOUR_API_KEY
Accept: */*
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>my-bucket</Name>
<Prefix></Prefix>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>my-image-1.png</Key>
<LastModified>2024-02-15T16:43:41.459Z</LastModified>
<ETag>"d41d8cd98f00b204e9800998ecf8427e"</ETag>
<Size>0</Size>
<StorageClass>STANDARD</StorageClass>
<Type>Normal</Type>
</Contents>
<Contents>
<Key>my-image-2.png</Key>
<LastModified>2024-03-13T15:53:14.199Z</LastModified>
<ETag>"994e15aa13aa642f3d82801c8f57b81b"</ETag>
<Size>2797180</Size>
<StorageClass>STANDARD</StorageClass>
<Type>Normal</Type>
</Contents>
<KeyCount>2</KeyCount>
</ListBucketResult>
Returns some or all (up to 1,000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK response can contain valid or invalid XML. Be sure to design your application to parse the contents of the response and handle it appropriately.
Permissions
You must be the contract owner or an administrator to perform this operation. If not, they can grant you permission to perform the s3:ListBucket
operation using Bucket Policy.
S3 API Compatibility
The
x-amz-expected-bucket-owner
header isn't supported.
The bucket name.
my-bucket
A delimiter is a character you use to group keys.
Requests IONOS Object Storage to encode the object keys in the response and specifies the encoding method to use. An object key may contain any Unicode character; however, XML 1.0 parser cannot parse some characters, such as characters with an ASCII value from 0 to 10. For characters that are not supported in XML 1.0, you can add this parameter to request that IONOS Object Storage encode the keys in the response.
Marker is where you want IONOS Object Storage to start listing from. IONOS Object Storage starts listing after this specified key. Marker can be any key in the bucket.
Sets the maximum number of keys returned in the response. By default the operation returns up to 1,000 key names. The response might contain fewer keys but will never contain more.
Limits the response to keys that begin with the specified prefix.
Pagination limit
Pagination token
Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests.
GET /{Bucket} HTTP/1.1
Host: s3.eu-central-1.ionoscloud.com
Authorization: YOUR_API_KEY
Accept: */*
<?xml version="1.0" encoding="UTF-8"?>
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>fb202d54c82981a9ed3208e1fe6eea2f</ID>
<DisplayName></DisplayName>
</Owner>
<Buckets>
<Bucket>
<Name>my-bucket</Name>
<CreationDate>2023-02-09T15:27:55.452Z</CreationDate>
</Bucket>
<Bucket>
<Name>my-bucket-2</Name>
<CreationDate>2023-03-20T16:41:04.326Z</CreationDate>
</Bucket>
<Bucket>
<Name>my-bucket-3</Name>
<CreationDate>2022-12-30T20:01:25.203Z</CreationDate>
</Bucket>
</Buckets>
</ListAllMyBucketsResult>
This API is used to issue a preflight request to the IONOS Object Storage to determine if it can send an actual request with the specific origin, HTTP method, and headers.
The bucket name.
my-bucket
Identifies what HTTP method will be used in the actual request.
OPTIONS /{Bucket} HTTP/1.1
Host: s3.eu-central-1.ionoscloud.com
Authorization: YOUR_API_KEY
Origin: text
Access-Control-Request-Method: text
Accept: */*
No content
Retrieves objects from IONOS Object Storage.
An IONOS Object Storage bucket has no directory hierarchy such as you would find in a typical computer file system. You can, however, create a logical hierarchy by using object key names that imply a folder structure. For example, instead of naming an object test.jpg
, you can name it photos/2022/July/test.jpg
.
To get an object from such a logical hierarchy, specify the full key name for the object in the GET
operation:
For a virtual hosted-style request example, if you have the object
photos/2022/July/test.jpg
, specify the resource as/photos/2022/July/test.jpg
.For a path-style request example, if you have the object
photos/2022/July/test.jpg
in the bucket namedmy-bucket
, specify the resource as/my-bucket/photos/2022/July/test.jpg
.
This operation returns an InvalidObjectStateError
error.
If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in IONOS Object Storage, then when you GET the object, you must use the following headers:
x-amz-server-side-encryption-customer-algorithm
x-amz-server-side-encryption-customer-key
x-amz-server-side-encryption-customer-key-md5
Permissions
You must be the contract owner or an administrator to perform this operation. If not, they can grant you permission to perform the s3:ListBucket
operation using Bucket Policy.
If the object you request does not exist, the error IONOS Object Storage returns depends on whether you also have the ListBucket
permission:
If you have the
ListBucket
permission on the bucket, IONOS Object Storage will return an HTTP status code404
.If you don’t have the
ListBucket
permission, IONOS Object Storage will return an HTTP status code403
("Access denied") error.
Versioning
By default, the GET operation returns the current version of an object. To return a different version, use the versionId
subresource.
You need the
GetObjectVersion
permission to access a specific version of an object.If the current version of the object is a delete marker, IONOS Object Storage behaves as if the object was deleted and includes
x-amz-delete-marker: true
in the response.
Overriding Response Header Values
There are times when you want to override certain response header values in a GET
response. For example, you might override the Content-Disposition
response header value in your GET
request.
You can override values for a set of response headers using the following query parameters. These response header values are sent only on a successful request, that is, when status code 200 OK
is returned. The set of headers you can override using these parameters is a subset of the headers that IONOS Object Storage accepts when you create an object.
The response headers that you can override for the GET response are the following:
Content-Type
Content-Language
Expires
Cache-Control
,Content-Disposition
Content-Encoding
.
To override these header values in the GET
response, you use the following request parameters:
partNumber
versionId
response-content-type
response-content-language
response-expires
response-cache-control
response-content-disposition
response-content-encoding
You must sign the request, either using an Authorization header or a presigned URL, when using these parameters. They cannot be used with an unsigned (anonymous) request.
Additional Considerations about Request Headers
If a Etag value sent in the
If-Match
header doesn't match the object's ETag, then thePrecondition Failed
error is returned.If both of the
If-Match
andIf-Unmodified-Since
headers are present in the request as follows:If-Match
condition evaluates totrue
, and;If-Unmodified-Since
condition evaluates tofalse
; then, S3 returns 200 OK and the data requested.If both of the
If-None-Match
andIf-Modified-Since
headers are present in the request as follows:If-None-Match
condition evaluates tofalse
, and;If-Modified-Since
condition evaluates totrue
; then, S3 returns304 Not Modified
response code.
For more information about conditional requests, see RFC 7232.
S3 API Compatibility
The
x-amz-expected-bucket-owner
header isn't supported.
The bucket name.
my-bucket
Sets the Cache-Control
header of the response.
Sets the Content-Disposition
header of the response
Sets the Content-Encoding
header of the response.
Sets the Content-Language
header of the response.
Sets the Content-Type
header of the response.
Sets the Expires
header of the response.
VersionId used to reference a specific version of the object.
Part number of the object being read. This is a positive integer between 1 and 10,000. Effectively performs a 'ranged' GET request for the part specified. Useful for downloading just a part of an object.
Return the object only if its entity tag (ETag) is the same as the one specified, otherwise return a 412 (precondition failed).
Return the object only if it has been modified since the specified time, otherwise return a 304 (not modified).
Return the object only if its entity tag (ETag) is different from the one specified, otherwise return a 304 (not modified).
Return the object only if it has not been modified since the specified time, otherwise return a 412 (precondition failed).
Specifies the algorithm to use to when decrypting the object (AES256).
Specifies the customer-provided encryption key for IONOS Object Storage used to encrypt the data. This value is used to decrypt the object when recovering it and must match the one used when storing the data. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
header.
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. IONOS Object Storage uses this header for a message integrity check to ensure that the encryption key was transmitted without error.
GET /{Bucket}/{Key} HTTP/1.1
Host: s3.eu-central-1.ionoscloud.com
Authorization: YOUR_API_KEY
Accept: */*
<?xml version="1.0"?>
<object>
<Body>binary</Body>
<Metadata>
<ANY_ADDITIONAL_PROPERTY>
<key1>x-amz-meta-key1</key1>
<value1>value for x-amz-meta-key1</value1>
</ANY_ADDITIONAL_PROPERTY>
</Metadata>
</object>
The POST operation adds an object to a specified bucket using HTML forms. POST is an alternate form of PUT that enables browser-based uploads of objects into buckets. Parameters passed to PUT via HTTP Headers are instead passed to POST as form fields in the multipart/form-data encoded message body.
The bucket name.
my-bucket
Key name of the object to post.
Can be used to specify caching behavior along the request/reply chain. For more information, see Cache-Control.
Specifies presentational information for the object. For more information, see Content-Disposition.
Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. For more information, see Content-Encoding.
The language the content is in.
Size of the body in bytes. This parameter is useful when the size of the body cannot be determined automatically. For more information, see Content-Length.
The base64 encoded MD5 digest of the message (without the headers) according to RFC 1864.
A standard MIME type describing the format of the contents. For more information, see Content-Type.
The date and time at which the object is no longer cacheable. For more information, see Expires.
The server-side encryption algorithm used when storing this object in IONOS Object Storage (AES256).
IONOS Object Storage uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability.
Specifies the algorithm to use to when encrypting the object (AES256).
Specifies the customer-provided encryption key for IONOS Object Storage to use in encrypting data. This value is used to store the object and then it is discarded; IONOS Object Storage does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
header.
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. IONOS Object Storage uses this header for a message integrity check to ensure that the encryption key was transmitted without error.
Specifies the IONOS Object Storage Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.
Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests.
The tag-set for the object. The tag-set must be encoded as URL Query parameters. (For example, "Key1=Value1")
The Object Lock mode that you want to apply to this object.
The date and time when you want this object's Object Lock to expire. Must be formatted as a timestamp parameter.
Specifies whether a legal hold will be applied to this object.
Object data.
POST /{Bucket}/{Key} HTTP/1.1
Host: s3.eu-central-1.ionoscloud.com
Authorization: YOUR_API_KEY
Content-Type: application/xml
Accept: */*
Content-Length: 64
"<?xml version=1.0?>
<Body>text</Body>
<x-amz-meta->
<ANY_ADDITIONAL_PROPERTY>text</ANY_ADDITIONAL_PROPERTY>
</x-amz-meta->
"
Success
<?xml version="1.0"?>
<object/>
Adds an object to a bucket. You must have WRITE permissions on a bucket to add an object to it.
IONOS Object Storage never adds partial objects; if you receive a success response, IONOS Object Storage added the entire object to the bucket.
IONOS Object Storage is a distributed system. If it receives multiple write requests for the same object simultaneously, it overwrites all but the last object written. IONOS Object Storage does not provide object locking; if you need this, make sure to build it into your application layer or use versioning instead.
To ensure that data is not corrupted traversing the network, use the `Content-MD5` header. When you use this header, IONOS Object Storage checks the object against the provided MD5 value and, if they do not match, returns an error. Additionally, you can calculate the MD5 while putting an object to IONOS Object Storage and compare the returned ETag to the calculated MD5 value.
To successfully complete the `PutObject` request, you must have the `PutObject` in your permissions.
To successfully change the objects acl of your `PutObject` request, you must have the `PutObjectAcl` in your permissions.
The `Content-MD5` header is required for any request to upload an object with a retention period configured using IONOS Object Storage Object Lock .
Versioning
If you enable versioning for a bucket, IONOS Object Storage automatically generates a unique version ID for the object being stored. IONOS Object Storage returns this ID in the response. When you enable versioning for a bucket, if IONOS Object Storage receives multiple write requests for the same object simultaneously, it stores all of the objects.
Server-side Encryption with IONOS Object Storage managed keys (SSE-S3)
You can optionally request server-side encryption. With server-side encryption, IONOS Object Storage encrypts your data as it writes it to disks in its data centers and decrypts the data when you access it.
the SSE-S3 encryption can be set as the default encryption for the bucket using PutBucketEncryption. This way all the newly created objects will be protected with SSE-S3 encryption even it was not specified in the `PutObject` operation.
the SSE-S3 encryption can be applied to the object at the time of upload by setting `x-amz-server-side-encryption` header to `AES256`. This can be skipped if the default encryption has been set up for the bucket as described in the previous clause.
Server-side Encryption with customer managed keys (SSE-C)
In order to apply encryption with customer-provided keys (SSE-C) to the uploading object add these headers to the request:
`x-amz-server-side-encryption-customer-algorithm` = `AES256`
`x-amz-server-side-encryption-customer-key` — the 256-bit, base64-encoded encryption key to use to encrypt and decrypt your data. You might use these commands to generate it:
to create the file with a key: `openssl rand 32 -out my-key.key`
to get base64-encoded string: `openssl enc -base64 -in my-key.key`, the example of the output: `4ZRNYBCCvL0YZeqo3f2+9qDyIfnLdbg5S99R2XWr0aw=`.
`x-amz-server-side-encryption-customer-key-MD5` — the base64-encoded 128-bit MD5 digest of the encryption key. Generate it with the following command: `echo my-key.key | openssl dgst -md5 -binary | openssl enc -base64`. The example of the output: `bPU7G1zD2MlOi5gqnkRqZg==`.
NOTE:
The SSE-C encryption will override the SSE-S3 encryption if the last one was enabled as a default encryption for the bucket.
In the response, IONOS Object Storage API returns the encryption algorithm and MD5 of the encryption key that you specified when uploading the object. The ETag that is returned is not the MD5 of the object.
The bucket name.
my-bucket
Object key for which the PUT operation was initiated.
Can be used to specify caching behavior along the request/reply chain. For more information, see Cache-Control.
Specifies presentational information for the object. For more information, see Content-Disposition.
Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. For more information, see Content-Encoding.
The language the content is in.
Size of the body in bytes. This parameter is useful when the size of the body cannot be determined automatically. For more information, see Content-Length.
The base64 encoded MD5 digest of the message (without the headers) according to RFC 1864.
A standard MIME type describing the format of the contents. For more information, see Content-Type.
The date and time at which the object is no longer cacheable. For more information, see Expires.
The server-side encryption algorithm used when storing this object in IONOS Object Storage (AES256).
The valid value is STANDARD
.
Specifies the algorithm to use to when encrypting the object. The valid option is AES256
.
Specifies the 256-bit, base64-encoded encryption key to use to encrypt and decrypt your data. For example, 4ZRNYBCCvL0YZeqo3f2+9qDyIfnLdbg5S99R2XWr0aw=
.
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. IONOS Object Storage uses this header for a message integrity check to ensure that the encryption key was transmitted without error. For example, bPU7G1zD2MlOi5gqnkRqZg==
.
Specifies the IONOS Object Storage Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.
Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests.
The tag-set for the object. The tag-set must be encoded as URL Query parameters. (For example, "Key1=Value1")
The Object Lock mode that you want to apply to this object.
The date and time when you want this object's Object Lock to expire. Must be formatted as a timestamp parameter.
Specifies whether a legal hold will be applied to this object.
Object data.
PUT /{Bucket}/{Key} HTTP/1.1
Host: s3.eu-central-1.ionoscloud.com
Authorization: YOUR_API_KEY
Content-Type: text/plain
Accept: */*
Content-Length: 64
"[object Object]"
Successful operation
HTTP/1.1 200 OK
x-amz-request-id: 9a4f31b7-fed2-1fff-a148-3cecef3849fe
date: Tue, 04 Apr 2023 19:36:53 GMT
etag: "4f8d2c12500d851ed55fc08df311e868"
x-amz-server-side-encryption-customer-algorithm: AES256
x-amz-server-side-encryption-customer-key-MD5: r4C1SZrweqvPoGPMtR6jTA==
content-length: 0
Removes the null version (if there is one) of an object and inserts a delete marker, which becomes the latest version of the object. This operation is final - there is no way to recover a deleted object. Data stored in IONOS Object Storage is erasure coded and distributed to multiple individual storage devices in multiple data centers. When data is deleted, various mechanisms exist which prevent recovery or reconstruction of the deleted objects.
Deletion of an object undergoes various stages. First, the metadata is marked to indicate the object is deleted, then, the data is removed. Eventually, deleted metadata is overwritten and the deleted data blocks are overwritten with new data in the course of normal operations. As soon as the metadata is marked deleted, it is not possible to read an object remotely.
The bucket name.
my-bucket
Key name of the object to delete.
VersionId used to reference a specific version of the object.
The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. Required to permanently delete a versioned object if versioning is configured with MFA Delete enabled.
Indicates whether Object Lock should bypass Governance-mode restrictions to process this operation. To use this header, you must have the PutBucketPublicAccessBlock
permission.
DELETE /{Bucket}/{Key} HTTP/1.1
Host: s3.eu-central-1.ionoscloud.com
Authorization: YOUR_API_KEY
Accept: */*
Success
<?xml version="1.0"?>
<object/>
The HEAD operation retrieves metadata from an object without returning the object itself. This operation is useful if you're only interested in an object's metadata. To use HEAD, you must have READ access to the object.
A `HEAD` request has the same options as a `GET` operation on an object. The response is identical to the `GET` response except that there is no response body. Because of this, if the `HEAD` request generates an error, it returns a generic `404 Not Found` or `403 Forbidden` code. It is not possible to retrieve the exact exception beyond these error codes.
If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in IONOS Object Storage, then when you retrieve the metadata from the object, you must use the following headers:
`x-amz-server-side-encryption-customer-algorithm` = `AES256`
`x-amz-server-side-encryption-customer-key`
`x-amz-server-side-encryption-customer-key-MD5`
Encryption request headers, like `x-amz-server-side-encryption`, should not be sent for GET requests if your object uses the server-side encryption with IONOS Object Storage–managed encryption keys (SSE-S3). If your object does use this type of keys, you’ll get an HTTP 400 BadRequest error.
The last modified property in this case is the creation date of the object.
Request headers are limited to 8 KB in size.
Consider the following when using request headers:
Consideration 1 – If both of the `If-Match` and `If-Unmodified-Since` headers are present in the request as follows:
`If-Match` condition evaluates to `true`, and;
`If-Unmodified-Since` condition evaluates to `false`;
Then IONOS Object Storage returns `200 OK` and the data requested.
Consideration 2 – If both of the `If-None-Match` and `If-Modified-Since` headers are present in the request as follows:
`If-None-Match` condition evaluates to `false`, and;
`If-Modified-Since` condition evaluates to `true`;
Then IONOS Object Storage returns the `304 Not Modified` response code.
For more information about conditional requests, see RFC 7232.
Permissions
You need the relevant read object (or version) permission for this operation. If the object you request does not exist, the error IONOS Object Storage returns depends on whether you also have the ListBucket permission.
If you have the `ListBucket` permission on the bucket, IONOS Object Storage returns an HTTP status code 404 ("no such key") error.
If you don’t have the `ListBucket` permission, IONOS Object Storage returns an HTTP status code 403 ("access denied") error.
The bucket name.
my-bucket
The object key.
VersionId used to reference a specific version of the object.
Part number of the object being read. This is a positive integer between 1 and 10,000. Effectively performs a 'ranged' HEAD request for the part specified. Useful querying about the size of the part and the number of parts in this object.
Return the object only if its entity tag (ETag) is the same as the one specified, otherwise return a 412 (precondition failed).
Return the object only if it has been modified since the specified time, otherwise return a 304 (not modified).
Return the object only if its entity tag (ETag) is different from the one specified, otherwise return a 304 (not modified).
Return the object only if it has not been modified since the specified time, otherwise return a 412 (precondition failed).
Specifies the algorithm to use to when encrypting the object (AES256).
Specifies the customer-provided encryption key for IONOS Object Storage to use in encrypting data. This value is used to store the object and then it is discarded; IONOS Object Storage does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
header.
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. IONOS Object Storage uses this header for a message integrity check to ensure that the encryption key was transmitted without error.
HEAD /{Bucket}/{Key} HTTP/1.1
Host: s3.eu-central-1.ionoscloud.com
Authorization: YOUR_API_KEY
Accept: */*
<?xml version="1.0"?>
<object>
<AcceptRanges>bytes</AcceptRanges>
<ContentLength>3191</ContentLength>
<ContentType>image/jpeg</ContentType>
<ETag>"6805f2cfc46c0f04559748bb039d69ae"</ETag>
<LastModified>Wed, 06 Jul 2022 05:10:16 GMT</LastModified>
<Metadata/>
<VersionId>null</VersionId>
</object>
Creates a copy of an object that is already stored in IONOS Object Storage.
You can store individual objects of up to 5 TB in IONOS Object Storage. You create a copy of your object up to 5 GB in size in a single atomic operation using this API. However, to copy an object greater than 5 GB, you must use the multipart upload Upload Part - Copy API.
All copy requests must be authenticated. Additionally, you must have read access to the source object and write access to the destination bucket. 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.
The bucket name.
my-bucket
The key of the destination object.
Specifies caching behavior along the request/reply chain.
Specifies presentational information for the object.
Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.
The language the content is in.
A standard MIME type describing the format of the object data.
\/.+\/.+
Copies the object if its entity tag (ETag) matches the specified tag.
Copies the object if it has been modified since the specified time.
Copies the object if its entity tag (ETag) is different than the specified ETag.
Copies the object if it hasn't been modified since the specified time.
The date and time at which the object is no longer cacheable.
Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request.
Specifies whether the object tag-set are copied from the source object or replaced with tag-set provided in the request.
The server-side encryption algorithm used when storing this object in IONOS Object Storage (AES256).
IONOS Object Storage uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability.
If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. IONOS Object Storage stores the value of this header in the object metadata.
Specifies the algorithm to use to when encrypting the object (AES256).
Specifies the customer-provided encryption key for IONOS Object Storage to use in encrypting data. This value is used to store the object and then it is discarded; IONOS Object Storage does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
header.
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. IONOS Object Storage uses this header for a message integrity check to ensure that the encryption key was transmitted without error.
Specifies the algorithm to use when decrypting the source object (AES256).
Specifies the customer-provided encryption key for IONOS Object Storage to use to decrypt the source object. The encryption key provided in this header must be one that was used when the source object was created.
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. IONOS Object Storage uses this header for a message integrity check to ensure that the encryption key was transmitted without error.
The tag-set for the object destination object this value must be used in conjunction with the TaggingDirective
. The tag-set must be encoded as URL Query parameters.
The Object Lock mode that you want to apply to the copied object.
The date and time when you want the copied object's Object Lock to expire.
Specifies whether you want to apply a Legal Hold to the copied object.
PUT /{Bucket}/{Key} HTTP/1.1
Host: s3.eu-central-1.ionoscloud.com
Authorization: YOUR_API_KEY
x-amz-copy-source: text
Content-Type: application/xml
Accept: */*
Content-Length: 50
"<?xml version=1.0?>
<x-amz-meta->
<ANY_ADDITIONAL_PROPERTY>text</ANY_ADDITIONAL_PROPERTY>
</x-amz-meta->
"
Success
<?xml version="1.0"?>
<object>
<CopyObjectResult>
<ETag>"6805f2cfc46c0f04559748bb039d69ae"</ETag>
<LastModified>2016-12-15T17:38:53.000Z</LastModified>
</CopyObjectResult>
</object>
This operation enables you to delete multiple objects from a bucket using a single HTTP request. If you know the object keys that you want to delete, then this operation provides a suitable alternative to sending individual delete requests, reducing per-request overhead.
The request contains a list of up to 1000 keys that you want to delete. In the XML, you provide the object key names, and optionally, version IDs if you want to delete a specific version of the object from a versioning-enabled bucket. For each key, IONOS Object Storage performs a delete operation and returns the result of that delete, success, or failure, in the response. Note that if the object specified in the request is not found, IONOS Object Storage returns the result as deleted.
The operation supports two modes for the response: verbose and quiet. By default, the operation uses verbose mode in which the response includes the result of deletion of each key in your request. In quiet mode the response includes only keys where the delete operation encountered an error. For a successful deletion, the operation does not return any information about the delete in the response body.
The bucket name.
my-bucket
The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. Required to permanently delete a versioned object if versioning is configured with MFA Delete enabled.
Specifies whether you want to delete this object even if it has a Governance-type Object Lock in place. To use this header, you must have the PutBucketPublicAccessBlock
permission.
POST /{Bucket} HTTP/1.1
Host: s3.eu-central-1.ionoscloud.com
Authorization: YOUR_API_KEY
Content-Type: application/xml
Accept: */*
Content-Length: 197
"<Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Object>
<Key>folder/object1.zip</Key>
</Object>
<Object>
<Key>folder/object2.zip</Key>
</Object>
</Delete>
"
Successful operation
<?xml version="1.0" encoding="UTF-8"?>
<DeleteResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Deleted>
<Key>folder/object1.zip</Key>
</Deleted>
<Deleted>
<Key>folder/object2.zip</Key>
</Deleted>
</DeleteResult>
Was this helpful?