CubeFS website screenshot

CubeFS

CubeFS is a CNCF graduated cloud-native distributed file system supporting POSIX, HDFS, and S3-compatible object storage protocols. It provides multi-tenancy, multi-AZ deployment, cross-region replication, and erasure coding for both hot and cold data tiers, and is widely used to back cloud-native AI training, big-data analytics, and container storage workloads.

2 APIs 0 Features
Cloud NativeCNCF GraduatedDistributed File SystemKubernetesObject StoragePOSIXS3 CompatibleStorage

APIs

CubeFS S3-Compatible API

CubeFS exposes an S3-compatible object storage interface through its ObjectNode component. AWS S3 SDKs work without modification for bucket management, object CRUD, multipart up...

CubeFS Master API

The CubeFS Master API provides HTTP endpoints for cluster management including volume creation/deletion, data and meta partition management, data and meta node management, user/...

Collections

Pricing Plans

Cubefs Plans Pricing

3 plans

PLANS

Rate Limits

Cubefs Rate Limits

5 limits

RATE LIMITS

FinOps

Cubefs Finops

FINOPS

Semantic Vocabularies

Cubefs Context

3 classes · 9 properties

JSON-LD

API Governance Rules

CubeFS API Rules

6 rules · 1 errors 5 warnings

SPECTRAL

CubeFS API Rules

3 rules · 1 errors 2 warnings

SPECTRAL

Resources

🔗
JSONLD
JSONLD
🔗
JSONSchema
JSONSchema
🔗
Vocabulary
Vocabulary
🔗
SpectralRules
SpectralRules
🔗
SpectralRules
SpectralRules
🔗
Website
Website
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
📄
ChangeLog
ChangeLog
👥
GitHubOrganization
GitHubOrganization
👥
GitHubRepository
GitHubRepository
🔗
LlmsText
LlmsText

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: CubeFS S3-Compatible API
  version: '3.3'
request:
  auth:
    type: apikey
    key: Authorization
    value: '{{Authorization}}'
    placement: header
items:
- info:
    name: Buckets
    type: folder
  items:
  - info:
      name: CubeFS List buckets
      type: http
    http:
      method: GET
      url: http://{objectNodeHost}:{objectNodePort}/
    docs: Returns a list of all buckets owned by the authenticated user. Each bucket corresponds to a CubeFS volume. The response
      includes the bucket name and creation date.
  - info:
      name: CubeFS Create a bucket
      type: http
    http:
      method: PUT
      url: http://{objectNodeHost}:{objectNodePort}/:bucket
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket (corresponds to a CubeFS volume name).
    docs: Creates a new S3 bucket, which corresponds to creating a new CubeFS volume. The bucket name becomes the volume name.
      The request may include a LocationConstraint to specify the storage region.
  - info:
      name: CubeFS Delete a bucket
      type: http
    http:
      method: DELETE
      url: http://{objectNodeHost}:{objectNodePort}/:bucket
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket (corresponds to a CubeFS volume name).
    docs: Deletes an empty S3 bucket. The bucket must be empty before deletion. Attempting to delete a non-empty bucket returns
      a 409 BucketNotEmpty error.
  - info:
      name: CubeFS Check if a bucket exists
      type: http
    http:
      method: HEAD
      url: http://{objectNodeHost}:{objectNodePort}/:bucket
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket (corresponds to a CubeFS volume name).
    docs: Checks whether a bucket exists and the caller has permission to access it. Returns 200 if the bucket exists and
      is accessible, 404 if it does not exist, or 403 if access is denied.
- info:
    name: Objects
    type: folder
  items:
  - info:
      name: CubeFS List objects in a bucket
      type: http
    http:
      method: GET
      url: http://{objectNodeHost}:{objectNodePort}/:bucket
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket (corresponds to a CubeFS volume name).
      - name: prefix
        value: ''
        type: query
        description: Only return objects whose keys begin with this prefix.
      - name: delimiter
        value: ''
        type: query
        description: Character used to group keys. Keys with the same string between the prefix and the first occurrence of
          the delimiter are grouped under a common prefix.
      - name: max-keys
        value: ''
        type: query
        description: Maximum number of objects to return. Defaults to 1000.
      - name: continuation-token
        value: ''
        type: query
        description: Continuation token for paginating through large result sets.
      - name: list-type
        value: ''
        type: query
        description: Set to 2 to use the List Objects V2 format with continuation tokens.
    docs: Returns a list of objects in a bucket. Supports prefix filtering, delimiter-based grouping for simulating directory
      hierarchies, and pagination via continuation tokens. Returns up to 1000 objects per request by default.
  - info:
      name: CubeFS Download an object
      type: http
    http:
      method: GET
      url: http://{objectNodeHost}:{objectNodePort}/:bucket/:key
      headers:
      - name: Range
        value: ''
      - name: If-Match
        value: ''
      - name: If-Modified-Since
        value: ''
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket (corresponds to a CubeFS volume name).
      - name: key
        value: ''
        type: path
        description: Object key (path within the bucket). Use forward slashes to simulate directory hierarchies.
    docs: Downloads the content of an object from the specified bucket at the given key. Supports range requests for partial
      content downloads and conditional requests based on ETag or modification time.
  - info:
      name: CubeFS Upload an object
      type: http
    http:
      method: PUT
      url: http://{objectNodeHost}:{objectNodePort}/:bucket/:key
      headers:
      - name: Content-Type
        value: ''
      - name: Content-MD5
        value: ''
      - name: x-amz-acl
        value: ''
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket (corresponds to a CubeFS volume name).
      - name: key
        value: ''
        type: path
        description: Object key (path within the bucket). Use forward slashes to simulate directory hierarchies.
    docs: Uploads an object to the specified bucket at the given key path. The object data is provided in the request body.
      The Content-Type and Content-Length headers should be set appropriately. Server-side encryption, metadata, and ACL settings
      can be specified via headers.
  - info:
      name: CubeFS Delete an object
      type: http
    http:
      method: DELETE
      url: http://{objectNodeHost}:{objectNodePort}/:bucket/:key
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket (corresponds to a CubeFS volume name).
      - name: key
        value: ''
        type: path
        description: Object key (path within the bucket). Use forward slashes to simulate directory hierarchies.
    docs: Deletes a single object from a bucket. The operation is idempotent — deleting a non-existent object returns a 204
      with no error.
  - info:
      name: CubeFS Get object metadata
      type: http
    http:
      method: HEAD
      url: http://{objectNodeHost}:{objectNodePort}/:bucket/:key
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket (corresponds to a CubeFS volume name).
      - name: key
        value: ''
        type: path
        description: Object key (path within the bucket). Use forward slashes to simulate directory hierarchies.
    docs: Returns metadata for the specified object without downloading its content. Returns the same headers as GetObject
      but with an empty body. Useful for checking existence, size, and ETag before downloading.
- info:
    name: Multipart
    type: folder
  items:
  - info:
      name: CubeFS Initiate a multipart upload
      type: http
    http:
      method: POST
      url: http://{objectNodeHost}:{objectNodePort}/:bucket/:key?uploads
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket (corresponds to a CubeFS volume name).
      - name: key
        value: ''
        type: path
        description: Object key (path within the bucket). Use forward slashes to simulate directory hierarchies.
    docs: Initiates a multipart upload session for a large object. Returns an UploadId that must be included in all subsequent
      part upload, list, complete, and abort requests for this multipart upload.
  - info:
      name: CubeFS Complete a multipart upload
      type: http
    http:
      method: POST
      url: http://{objectNodeHost}:{objectNodePort}/:bucket/:key?uploadId=:uploadId
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket (corresponds to a CubeFS volume name).
      - name: key
        value: ''
        type: path
        description: Object key (path within the bucket). Use forward slashes to simulate directory hierarchies.
      - name: uploadId
        value: ''
        type: query
        description: Upload ID from the CreateMultipartUpload response.
    docs: Assembles the previously uploaded parts and completes the multipart upload. The request body must list all parts
      in order with their part numbers and ETags. The assembled object becomes available for download once this request succeeds.
  - info:
      name: CubeFS Upload a part
      type: http
    http:
      method: PUT
      url: http://{objectNodeHost}:{objectNodePort}/:bucket/:key?uploadId=:uploadId
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket (corresponds to a CubeFS volume name).
      - name: key
        value: ''
        type: path
        description: Object key (path within the bucket). Use forward slashes to simulate directory hierarchies.
      - name: uploadId
        value: ''
        type: query
        description: Upload ID from the CreateMultipartUpload response.
      - name: partNumber
        value: ''
        type: query
        description: Part number between 1 and 10,000.
    docs: Uploads a single part in a multipart upload. Parts must be between 5 MB and 5 GB. The part number must be between
      1 and 10,000. Returns an ETag for the part that must be included when completing the upload.
  - info:
      name: CubeFS Abort a multipart upload
      type: http
    http:
      method: DELETE
      url: http://{objectNodeHost}:{objectNodePort}/:bucket/:key?uploadId=:uploadId
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket (corresponds to a CubeFS volume name).
      - name: key
        value: ''
        type: path
        description: Object key (path within the bucket). Use forward slashes to simulate directory hierarchies.
      - name: uploadId
        value: ''
        type: query
        description: Upload ID from the CreateMultipartUpload response.
    docs: Aborts an in-progress multipart upload and frees all storage consumed by previously uploaded parts. After aborting,
      no additional parts can be uploaded for this UploadId.
- info:
    name: ACLs
    type: folder
  items:
  - info:
      name: CubeFS Get bucket ACL
      type: http
    http:
      method: GET
      url: http://{objectNodeHost}:{objectNodePort}/:bucket?acl
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket (corresponds to a CubeFS volume name).
    docs: Returns the access control list for the specified bucket. The ACL defines which accounts or groups have read and
      write access to the bucket.
  - info:
      name: CubeFS Set bucket ACL
      type: http
    http:
      method: PUT
      url: http://{objectNodeHost}:{objectNodePort}/:bucket?acl
      headers:
      - name: x-amz-acl
        value: ''
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket (corresponds to a CubeFS volume name).
    docs: Sets the access control list for the specified bucket. Supports canned ACLs (private, public-read) or a custom ACL
      with explicit grants.
bundled: true