S3 API operations
IBM Storage Protect supports basic S3 application programming interface (API) operations for data backup and retrieval. However, some S3 API client function calls are not supported by IBM Storage Protect.
The IBM Storage Protect S3 API is packaged with the IBM Storage Protect server. The IBM Storage Protect S3 API enables an S3 client application to use containers for storage management. The API includes function calls that you can use in an application to run several operations.
| S3 REST API operation | Function | Supported parameters | Requirements |
|---|---|---|---|
| Put Bucket | Creates a file space for the object client node on the IBM Storage Protect server. This file space acts as a bucket for all client objects. | Bucket |
The bucket name must comply with the Amazon S3 bucket name guidelines, except for requirement that the name must be globally unique. The bucket name must be unique only within the client node. The Amazon S3 bucket rules are more restrictive than the IBM Storage Protect server's filespace name restrictions. For more information about Amazon S3 bucket rules, see Bucket restrictions and limitations. Bucket names must follow these guidelines:
Restriction: The character set is restricted for bucket names to support maximum
client compatibility. However, UTF-8 characters are permitted in object keys.
|
| Delete Bucket | Deletes a bucket from IBM Storage Protect. In IBM Storage Protect, buckets are represented by file spaces. | Bucket |
Before the bucket can be deleted, ensure that the bucket is empty.
|
| List Buckets |
Provides a list of buckets for this object client node. In IBM Storage Protect, buckets are represented by file spaces. |
No parameters are available. | IBM Storage Protect does not save the filespace creation date, so the creation date of a bucket is not an accurate timestamp. |
| Put Object | Creates an object in IBM Storage Protect. |
|
Object names: An object key must follow the object naming guidelines in Object keys. Object keys must be 1 - 1024 characters long and consist of valid UTF-8 characters. As noted in the guidelines, several characters must be avoided. These characters might be acceptable as part of an object key. However, to avoid possible issues with applications, do not use the characters in object keys or elsewhere. Object sizes: The S3 standard limits single object PUT requests to 5 GB. Larger requests are rejected. Each part of a multipart object is limited to 5 GB. Although a size of 5 GB is allowed per single object in PUT requests, use the multipart object operations for objects that exceed 100 MB. Only the STANDARD storage class is supported. |
| Get Object | Retrieves an object or a range of data within the object from IBM Storage Protect. |
|
Server performance can be affected when multiple small GET requests are issued. The optimal GET request size is 5 MB or larger. For GET requests that exceed 5 GB, data is sent over a single IBM Storage Protect session. In this situation, clients might not get data quickly enough. To avoid this issue, consider requesting multiple ranges of the same object in parallel. |
| Head Object | Returns information about a specified object. |
|
See the list of supported response elements in List objects. |
| Delete Object(s) | Deletes a single object or multiple objects. |
|
|
| List Objects | Retrieves a list of objects or directories for a specified bucket. |
Supported response elements:
|
A bucket corresponds to a file space on the server. A delimiter can be used to specify a character to group keys as defined in the S3 API. The prefix is used to search for object agent files under the current node definition with the specified prefix. When used with the delimiter, this operation can generate a hierarchical representation of a directory structure. |
| Create Multipart Upload | Initiates the construction of a multipart object. |
|
Multipart object operations are used to upload larger objects. Objects that are larger than 100 MB must be uploaded by using multipart object operations. In this way, the object can be uploaded in parallel streams. Objects as large as 5 TB can be created within a multipart object. A single part can be up to 5 GB. Parts must be at least 5 MB except for the last part. The S3 protocol allows for up to 10,000 parts. In IBM Storage Protect, each part is stored as an object, and a head object is added. These objects are then grouped with the head object. For example, a multipart object that was backed up with 10 parts appears as 11 objects in IBM Storage Protect queries such as the QUERY OCCUPANCY command. After the object is committed by using the S3 protocol, it appears as a single object in the S3 APIs, but you might see multiple objects in IBM Storage Protect. Important: The S3 client must either commit or abort a multipart object or the operation
might fail to complete processing:
All rules in Object names apply. Only the STANDARD storage class is supported. |
| Upload Part | Uploads one part of a multipart object. |
|
|
| Complete Multipart Upload | Completes a multipart upload by assembling previously uploaded parts. |
|
|
| Abort Multipart Upload | Halts a multipart upload after it is started. All parts of the specified non-committed object are deleted. |
|
|
| List Parts | Lists the parts that were uploaded for a specific multipart upload. |
Supported response elements:
|
A bucket corresponds to a file space on the server. Use the key and upload ID that are issued in the List Parts operation to start a multipart upload. |
| List Multipart Uploads | Lists multipart uploads for a specified bucket. |
Supported response elements:
|
The operation returns all objects that match a specified prefix with an optional delimiter. A bucket corresponds to a file space on the server. The listing includes uploads that are created but not committed or aborted. |