API Overview¶
REST APIs support standard HTTP headers and status codes. IAM is used to manage online authentication for access security.
APIs provided by OBS (compatible with OpenStack Swift) comply with REST specifications (HTTP 1.1). With REST APIs from OBS (compatible with OpenStack Swift), users can send standard HTTP requests to perform operations such as creating, querying, and deleting containers or objects. Users can use any tool that supports REST requests to send requests to OBS (compatible with OpenStack Swift).
REST APIs provided by OBS (compatible with OpenStack Swift) are compatible with most OpenStack Swift APIs. Table 1 describes the compatibility between REST APIs provided by OBS (compatible with OpenStack Swift) and OpenStack Swift APIs (Version v1.0, Kilo).
OpenStack Swift API | Function | Implemented by OBS (Compatible with OpenStack Swift) | Differences |
---|---|---|---|
GET Account | Obtains account information and the container list. | Yes | None |
POST Account | Creates, updates, or deletes account metadata. | Yes | None |
HEAD Account | Obtains account metadata. | Yes | None |
GET Container | Obtains container information and the object list. | Yes | None |
PUT Container | Creates a container. | Yes | None |
DELETE Container | Deletes an empty container. | Yes | None |
POST Container | Creates, updates, or deletes container metadata. | Yes | None |
HEAD Container | Obtains container metadata. | Yes | None |
BULK DELETE Container | Batch deletes containers. | Yes | In a response, the Content-Type header contains charset information. |
POST Container Static WebSite | Configures container static websites. | Yes | None |
POST Container Cross domain policy | Configures container cross-domain access policies. | Yes | None |
POST container to container Synchronization | Configures container synchronization. | No | This function is not supported. |
POST Container Quota | Configures the bucket quota. | No | This function is not supported. |
GET Object | Obtains an object's content and metadata. | Yes | None |
PUT Object | Creates or replaces an object. | Yes | None |
COPY Object | Copies an object. | Yes | None |
DELETE Object | Deletes an object. | Yes | None |
HEAD Object | Obtains object metadata. | Yes | None |
POST Object | Creates or updates object metadata. | Yes | None |
Object Version | Supports operations corresponding to object versioning. | No | Object versioning is not supported. |
GET Large Object | Gets large objects. | Yes | None |
PUT Archive Auto Extraction | Automatically decompresses uploaded objects. | No | This function is not supported. |
PUT Large Object | Puts large objects. | Yes | Static large objects can have a maximum of 1,000 parts. |
COPY Large Object | Copies large objects. | Yes | None |
BULK DELETE Object | Batch deletes objects. | Yes | None |
Delete Large Object | Deletes large objects. | Yes | None |
Expiring Object Support | Deletes objects as scheduled. | No | This function is not supported. |
Object TempURL | Performs object TempURL operations. | Yes | When outgoing_allow_head is set in TempURL, the content of the Content-Type header cannot be removed. |
Storage Policy | Configures storage policies. | No | OpenStack Swift's storage policy configuration is not supported. None of the APIs allow the X-Newest header to be carried. |
Rate limiting | Allows a configuration file to limit the rate. | No | A configuration file is not allowed to limit the rate. |
Erasure Code Support | Supports the Erasure Code algorithm at the underlying layer. | No | This function is not supported. |
TempAuth | Supports simple authentication provided by OpenStack Swift. | No | Only IAM is supported. |
The REST specifications of OBS (compatible with OpenStack Swift) are compatible with most specifications of OpenStack Swift. Table 2 describes the differences between the REST specifications of OBS (compatible with OpenStack Swift) and the OpenStack Swift specifications.
Item | OpenStack Swift | REST Specifications of OBS (Compatible with OpenStack Swift) |
---|---|---|
Maximum number of containers under an account | None | 100 |
Maximum number of objects under a container | None | 50 million |