Storage API

Get List Buckets

GET api/storage/list

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key

Response :

{
code: 200,
count: 0,
data: [
    {
        name: luck,
        creation_date: 2020-03-02 06:38:53
    },
    {
        name: ranger,
        creation_date: 2020-03-02 06:51:12
    }
],
status: success,
message: Operation succeeded
}

Get List Objects

GET api/storage/list

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key
bucket_name string name of bucket

Response :

{
code: 200,
count: 2,
data: [
    {
        directory: Folder/
    },
    {
        Key: tes.png,
        LastModified: 2020-02-02 00:00:00,
        ETag: 000tes,
        Size: 0,
        StorageClass: STANDARD,
        Owner: {
            DisplayName: JohnDoe,
            ID: 123
        }
    }
],
status: success,
message: Operation succeeded
}

Get Bucket Info

GET api/storage/bucket/:bucket_name

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key

Response :

{
code: 200,
count: 0,
data: {
    ACL: [
        [
            JohnDoe,
            FULL_CONTROL
        ]
    ],
    CORS: null,
    Policy: null,
    Expiration: null,
    Location: null,
    GmtPolicy: Replica Data to all nodes within single Datacenter
},
status: success,
message: Operation succeeded
}

Create New Bucket

POST api/storage/bucket/:bucket_name

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key

Response :

{
code: 201,
count: 0,
data: null,
status: success,
message: Bucket bucket1 created successfully.
}

Delete Bucket

DELETE api/storage/bucket/:bucket_name

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key

Response :

{
code: 200,
count: 1,
data: {
    ResponseMetadata: {
        RequestId: a-b-123,
        HostId: ,
        HTTPStatusCode: 204,
        HTTPHeaders: {
            date: Mon, 02 Feb 2020 00:00:00 GMT,
            x-amz-request-id: a-b-123,
            server: CloudianS3
        },
        RetryAttempts: 0
    }
},
status: success,
message: Bucket ranger deleted successfully.
}

Get Object Info

GET api/storage/object/:bucket_name

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key
object_name string name of object with extension

Response :

{
code: 200,
count: 6,
data: {
    ACL: [['JohnDoe', 'FULL_CONTROL']],
    Size: 30811,
    LastModified: 2020-02-02 00:00:00+00:00,
    MD5: \e123\,
    MimeType: binary/octet-stream,
    StorageClass: None
},
status: success,
message: Operation succeeded
}

Delete Object

DELETE api/storage/object/:bucket_name

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key
object_name string name of object with extension

Response :

{
code: 200,
count: 1,
data: {
    ResponseMetadata: {
        RequestId: a-b-123,
        HostId: ,
        HTTPStatusCode: 204,
        HTTPHeaders: {
            date: Mon, 02 Feb 2020 00:00:00 GMT,
            x-amz-request-id: a-b-123,
            server: CloudianS3
        },
        RetryAttempts: 0
    }
},
status: success,
message: Object Foo.png deleted successfully.
}

Upload Object

POST api/storage/object/upload/:bucket_name

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key
object_name string name of object with extension
files form object files
acl string acl access for object

Response :

{
code: 201,
count: 0,
data: null,
status: success,
message: Object foo.png uploaded successfully.
}

List Multipart Upload

GET api/storage/object/upload/:bucket_name

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key
object_name string name of object with extension

Response :

{
code: 200,
count: 0,
data: {
    "Uploads": [
        {
            "UploadId": "id-1",
            "Key": "img",
            "Initiated": "2020-01-01 00:00:00",
            "StorageClass": "STANDARD",
            "Owner": {
                "DisplayName": "owner",
                "ID": "123"
            },
            "Initiator": {
                "ID": "123",
                "DisplayName": "owner"
            }
        },
        {
            "UploadId": "id-2",
            "Key": "txt",
            "Initiated": "2020-01-01 00:00:00",
            "StorageClass": "STANDARD",
            "Owner": {
                "DisplayName": "owner",
                "ID": "123"
            },
            "Initiator": {
                "ID": "123",
                "DisplayName": "owner"
            }
        },
status: success,
message: Operation succeeded
}

List Part

GET api/storage/object/upload/:bucket_name

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key
object_name string name of object with extension
upload_id string upload id from object

Response :

{
code: 200,
count: 0,
data: [
    {
        "PartNumber": 2,
        "LastModified": "2020-01-01 00:00:00",
        "ETag": "\"etagabc123\"",
        "Size": 2097152
    }
],
status: success,
message: Operation succeeded
}

Abort Multipart Upload

DELETE api/storage/object/upload/:bucket_name

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key
object_name string name of object with extension
upload_id string upload id from object

Response :

{
code: 200,
count: 0,
data: {
    "ResponseMetadata": {
        "RequestId": "123",
        "HostId": "",
        "HTTPStatusCode": 204,
        "HTTPHeaders": {
            "date": "Tue, 01 Jan 2020 00:00:00 GMT",
            "x-amz-request-id": "123",
            "server": "CloudianS3"
        },
        "RetryAttempts": 0
    }
},
status: success,
message: Multipart upload for foo.png has been aborted.
}

Complete Multipart Upload

PUT api/storage/object/upload/:bucket_name

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key
object_name string name of object with extension
upload_id string upload id from object

Response :

{
code: 200,
count: 0,
data: null,
status: success,
message: Multipart upload for foo.png has been completed.
}

Download Object

GET api/storage/object/download/:bucket_name

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key
object_name string name of object or directory with extension

Note

Use object_name with path to download objec, directory path to download directory, and don’t use paramater key to download all object in bucket.

Example:

  • object.png
  • folder/directory/first/

Response :

API returned/downloaded object

Move Object to Another Bucket

POST api/storage/object/move/:bucket_name

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key
object_name string name of object with extension
move_to string name of destination bucket

Response :

{
code: 201,
count: 0,
data: null,
status: success,
message: Object foo.png moved successfully.
}

Copy Object to Another Bucket

POST api/storage/object/copy/:bucket_name

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key
object_name string name of object with extension
copy_to string name of destination bucket

Response :

{
code: 201,
count: 0,
data: null,
status: success,
message: Object foo.png copied successfully.
}

Get Usage

GET api/storage/usage

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key
bucket_name string name of bucket

Response :

{
code: 200,
count: 2,
data: {
    bucket: [
        {
            name: bucket1,
            size: 30811,
            objects: 1
        }
    ],
    total_usage: 30811
},
status: success,
message: Operation succeeded
}

Create New Directory

POST api/storage/mkdir/:bucket_name

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key
directory string name of directory

Response :

{
code: 201,
count: 2,
data: {
    ResponseMetadata: {
        RequestId: a-b-123,
        HostId: ,
        HTTPStatusCode: 200,
        HTTPHeaders: {
            date: Mon, 02 Feb 2020 00:00:00 GMT,
            x-amz-request-id: a-b-123,
            etag: \e123\,
            content-length: 0,
            server: CloudianS3
        },
        RetryAttempts: 0
    },
    ETag: \e123\
},
status: success,
message: Directory Folder added successfully.
}

Get URL Object

GET api/storage/presign/:bucket_name/:object_name

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key
expire integer URL expired time in seconds

Response :

{
code: 200,
count: 141,
data: http;//url-test.net,
status: success,
message: Operation succeeded
}

Set ACL

GET api/storage/acl

Query Parameters:

Name Type Description
access_key string user access key
secret_key string user secret key
bucket_name string name of bucket
object_name string name of object with extension

Response :

{
code: 200,
count: 1,
data: {
    ResponseMetadata: {
        ResponseMetadata: {
        RequestId: a-b-123,
        HostId: ,
        HTTPStatusCode: 200,
        HTTPHeaders: {
            date: Mon, 02 Feb 2020 00:00:00 GMT,
            x-amz-request-id: a-b-123,
            etag: \e123\,
            content-length: 0,
            server: CloudianS3
        },
        RetryAttempts: 0
    },
},
status: success,
message: Added public-read access to object foo.png.
}

Get GMT Policy

GET api/storage/gmt

Response :

{
code: 200,
count: 8,
data: [
    {
        Name: gmt-1,
        Id: 123,
        Description: No description
    },
    {
        Name: gmt-2,
        Id: 345,
        Description: No description
    },
],
status: success,
message: Operation succeeded
}