Container service

POST /v3.0/{NS}/container/snapshot?acct={account}&ref={container}

{
  "account":"destination account name",
  "container":"destination container name"
}

Take a snapshot of a container. Create a separate database containing all information about the contents from the original database, but with copies of the chunks at the time of the snapshot. This new database is not replicated.

POST /v3.0/OPENIO/container/snapshot?acct=my_account&ref=mycontainer HTTP/1.1
Host: 127.0.0.1:6000
User-Agent: curl/7.47.0
Accept: */*
Content-Length: 44
Content-Type: application/x-www-form-urlencoded
HTTP/1.1 204 No Content
Connection: Close
Content-Length: 0

POST /v3.0/{NS}/container/create_many?acct={account}

For each container, you can specify system and properties value by adding them on dictionnary after container name. Syntax is same as “container create”

{
  "containers":[{"name":"cont0"}, {"name":"cont1", "properties":{"test":"1"}}]
}

Create containers with given configuration and name.

POST /v3.0/OPENIO/container/create_many?acct=my_account HTTP/1.1
Host: 127.0.0.1:6000
User-Agent: curl/7.47.0
Accept: */*
Content-Length: 78
Content-Type: application/x-www-form-urlencoded
HTTP/1.1 200 OK
Connection: Close
Content-Type: application/json
Content-Length: 106
{
  "containers":[
                 {"name":"cont0","status":201,"message":"ok"},
                 {"name":"cont1","status":201,"message":"ok"}
               ]
}

POST /v3.0/{NS}/container/create?acct={account}&ref={container}

System and properties value are optional

{
  "system":{"sys.m2.quota": val, "sys.m2.policy.storage": policy, ...},
  "properties":{"test":"1", ...}
}

Create container with given configuration.

POST /v3.0/OPENIO/container/create?acct=my_account&ref=mycontainer HTTP/1.1
Host: 127.0.0.1:6000
User-Agent: curl/7.47.0
Accept: */*
Content-Length: 30
Content-Type: application/x-www-form-urlencoded
HTTP/1.1 201 CREATED
Connection: Close
Content-Length: 0

POST /v3.0/{NS}/container/destroy?acct={account}&ref={container}

Delete container.

POST /v3.0/OPENIO/container/destroy?acct=my_account&ref=mycontainer HTTP/1.1
Host: 127.0.0.1:6000
User-Agent: curl/7.47.0
Accept: */*
HTTP/1.1 204 No Content
Connection: Close
Content-Length: 0

GET /v3.0/{NS}/container/list?acct={account}&ref={container}&properties={bool}&max={int}

List object of container. In this example, only 2 objects are given without their properties

GET /v3.0/OPENIO/container/list?acct=my_account&ref=mycontainer&properties=False%max=2 HTTP/1.1
Host: 127.0.0.1:6000
User-Agent: curl/7.47.0
Accept: */*
HTTP/1.1 200 OK
Connection: Close
Content-Type: application/json
Content-Length: 857
x-oio-container-meta-sys-account: my_account
x-oio-container-meta-sys-m2-ctime: 1533286343746147
x-oio-container-meta-sys-m2-init: 1
x-oio-container-meta-sys-m2-objects: 2
x-oio-container-meta-sys-m2-usage: 360
x-oio-container-meta-sys-m2-version: 2
x-oio-container-meta-sys-name: B6A905025EBA78C555B4437321C176B4F9CC1EF49A45BBA8FA561D7F08592D2D.1
x-oio-container-meta-sys-ns: OPENIO
x-oio-container-meta-sys-status: 0
x-oio-container-meta-sys-type: meta2
x-oio-container-meta-sys-user-name: mycontainer
x-oio-list-marker: obj2
x-oio-list-truncated: true
{"prefixes":[], ...}

GET /v3.0/{NS}/container/show?acct={account}&ref={container}&properties={bool}

Show container information, and return container properties

GET /v3.0/OPENIO/container/show?acct=my_account&ref=mycontainer HTTP/1.1
Host: 127.0.0.1:6000
User-Agent: curl/7.47.0
Accept: */*
HTTP/1.1 200 OK
Connection: Close
Content-Type: application/json
Content-Length: 17
x-oio-container-meta-sys-account: my_account
x-oio-container-meta-sys-m2-ctime: 1533286343746147
x-oio-container-meta-sys-m2-init: 1
x-oio-container-meta-sys-m2-objects: 2
x-oio-container-meta-sys-m2-usage: 360
x-oio-container-meta-sys-m2-version: 2
x-oio-container-meta-sys-name: B6A905025EBA78C555B4437321C176B4F9CC1EF49A45BBA8FA561D7F08592D2D.1
x-oio-container-meta-sys-ns: OPENIO
x-oio-container-meta-sys-status: 0
x-oio-container-meta-sys-type: meta2
x-oio-container-meta-sys-user-name: mycontainer
x-oio-container-meta-x-schema-version: 1.8
x-oio-container-meta-x-version-main-admin: 1%3A0
x-oio-container-meta-x-version-main-aliases: 1%3A0
x-oio-container-meta-x-version-main-chunks: 1%3A0
x-oio-container-meta-x-version-main-contents: 1%3A0
x-oio-container-meta-x-version-main-properties: 1%3A0
{"properties":{}}

POST /v3.0/{NS}/container/touch?acct={account}&ref={container}

Send an event to update object and object size on container.

POST /v3.0/OPENIO/container/touch?acct=my_account&ref=mycontainer HTTP/1.1
Host: 127.0.0.1:6000
User-Agent: curl/7.47.0
Accept: */*
HTTP/1.1 204 No Content
Connection: Close
Content-Length: 0

POST /v3.0/{NS}/container/dedup?acct={account}&ref={container}

POST /v3.0/OPENIO/container/dedup?acct=my_account&ref=mycontainer HTTP/1.1
Host: 127.0.0.1:6000
User-Agent: curl/7.47.0
Accept: */*
HTTP/1.1 204 No Content
Connection: Close
Content-Length: 0

POST /v3.0/{NS}/container/purge?acct={account}&ref={container}

Purge exceeding object versions.

POST /v3.0/OPENIO/container/purge?acct=my_account&ref=mycontainer HTTP/1.1
Host: 127.0.0.1:6000
User-Agent: curl/7.47.0
Accept: */*
HTTP/1.1 204 No Content
Connection: Close
Content-Length: 0

POST /v3.0/{NS}/container/flush?acct={account}&ref={container}

Remove object of container.

POST /v3.0/OPENIO/container/flush?acct=my_account&ref=mycontainer HTTP/1.1
Host: 127.0.0.1:6000
User-Agent: curl/7.47.0
Accept: */*
HTTP/1.1 204 No Content
Connection: Close
Content-Length: 0

POST /v3.0/{NS}/container/get_properties?acct={account}&ref={container}

Get container properties.

POST /v3.0/OPENIO/container/get_properties?acct=my_account&ref=mycontainer HTTP/1.1
Host: 127.0.0.1:6000
User-Agent: curl/7.47.0
Accept: */*
HTTP/1.1 200 OK
Connection: Close
Content-Type: application/json
Content-Length: 515
{"properties":[], ...}

POST /v3.0/{NS}/container/set_properties?acct={account}&ref={container}

{
  "system":{},
  "properties":{"test":"1"}
}

Set container properties.

POST /v3.0/OPENIO/container/set_properties?acct=my_account&ref=mycontainer HTTP/1.1
Host: 127.0.0.1:6000
User-Agent: curl/7.47.0
Accept: */*
Content-Length: 40
Content-Type: application/x-www-form-urlencoded
HTTP/1.1 200 OK
Connection: Close
Content-Type: application/json
Content-Length: 2
{}

POST /v3.0/{NS}/container/del_properties?acct={account}&ref={container}

["test"]

Delete container properties.

POST /v3.0/OPENIO/container/del_properties?acct=my_account&ref=mycontainer HTTP/1.1
Host: 127.0.0.1:6000
User-Agent: curl/7.47.0
Accept: */*
Content-Length: 8
Content-Type: application/x-www-form-urlencoded
HTTP/1.1 200 OK
Connection: Close
Content-Type: application/json
Content-Length: 2
{}