s3

Manage S3 access.

GET /s3/users

Parameters

uid
array
query
optional
-

Endpoint

curl -X GET http://mgmt-node:8080/api/s3/users?uid=string
                

Response 200

uid
string
optional
-
name
string
optional
-
email
string
optional
-
suspended
boolean
optional
-
subusers
array
optional
-
bucketQuota
object
optional
-
userQuota
object
optional
-

Example response

[
  {
    "uid": "string",
    "name": "string",
    "email": "string",
    "suspended": true,
    "subusers": [
      {
        "subuser": "string",
        "permissions": "full-control"
      }
    ],
    "bucketQuota": {
      "enabled": true,
      "maxSizeKb": 0,
      "maxObjects": 0
    },
    "userQuota": {
      "enabled": true,
      "maxSizeKb": 0,
      "maxObjects": 0
    }
  }
]
                  

POST /s3/users

Parameters

body
object
optional
-

Endpoint

curl -X POST http://mgmt-node:8080/api/s3/users
                

Example body

{
  "uid": "string",
  "name": "string",
  "email": "string"
}
                

GET /s3/user-names

Parameters

No parameters...

Endpoint

curl -X GET http://mgmt-node:8080/api/s3/user-names
                

Response 200

Example response

[
  "string"
]
                  

GET /s3/users/{uid}/key

Parameters

uid
string
path
-

Endpoint

curl -X GET http://mgmt-node:8080/api/s3/users/{uid}/key
                

Response 200

user
string
optional
-
accessKey
string
optional
-
secretKey
string
optional
-

Example response

{
  "user": "string",
  "accessKey": "string",
  "secretKey": "string"
}
                  

GET /s3/users/{uid}/{subuser}/key

Parameters

uid
string
path
-
subuser
string
path
-

Endpoint

curl -X GET http://mgmt-node:8080/api/s3/users/{uid}/{subuser}/key
                

Response 200

user
string
optional
-
accessKey
string
optional
-
secretKey
string
optional
-

Example response

{
  "user": "string",
  "accessKey": "string",
  "secretKey": "string"
}
                  

GET /s3/users/{uid}/cfg-file/download

Parameters

uid
string
path
-

Endpoint

curl -X GET http://mgmt-node:8080/api/s3/users/{uid}/cfg-file/download
                

Response 200

fileName
string
optional
-
url
string
optional
-
fileContents
string
optional
-

Example response

{
  "fileName": "string",
  "url": "string",
  "fileContents": "string"
}
                  

GET /s3/users/{uid}/{subuser}/cfg-file/download

Parameters

uid
string
path
-
subuser
string
path
-

Endpoint

curl -X GET http://mgmt-node:8080/api/s3/users/{uid}/{subuser}/cfg-file/download
                

Response 200

fileName
string
optional
-
url
string
optional
-
fileContents
string
optional
-

Example response

{
  "fileName": "string",
  "url": "string",
  "fileContents": "string"
}
                  

POST /s3/users/{uid}

Parameters

uid
string
path
-
body
object
optional
-

Endpoint

curl -X POST http://mgmt-node:8080/api/s3/users/{uid}
                

Example body

{
  "subuser": "string",
  "permissions": "full-control"
}
                

DELETE /s3/users/{uid}

Parameters

uid
string
path
-

Endpoint

curl -X DELETE http://mgmt-node:8080/api/s3/users/{uid}
                

PATCH /s3/users/{uid}

Parameters

uid
string
path
-
body
object
optional
-

Endpoint

curl -X PATCH http://mgmt-node:8080/api/s3/users/{uid}
                

Example body

{
  "name": "string",
  "email": "string",
  "suspended": true
}
                

DELETE /s3/users/{uid}/{subuser}

Parameters

uid
string
path
-
subuser
string
path
-

Endpoint

curl -X DELETE http://mgmt-node:8080/api/s3/users/{uid}/{subuser}
                

PATCH /s3/users/{uid}/{subuser}

Parameters

uid
string
path
-
subuser
string
path
-
body
object
optional
-

Endpoint

curl -X PATCH http://mgmt-node:8080/api/s3/users/{uid}/{subuser}
                

Example body

{
  "permissions": "full-control"
}
                

PUT /s3/users/{uid}/quota

Parameters

uid
string
path
-
body
object
optional
-

Endpoint

curl -X PUT http://mgmt-node:8080/api/s3/users/{uid}/quota
                

Example body

{
  "enabled": true,
  "maxSizeKb": 0,
  "maxObjects": 0
}
                

PUT /s3/users/{uid}/bucket-quota

Parameters

uid
string
path
-
body
object
optional
-

Endpoint

curl -X PUT http://mgmt-node:8080/api/s3/users/{uid}/bucket-quota
                

Example body

{
  "enabled": true,
  "maxSizeKb": 0,
  "maxObjects": 0
}
                

GET /s3/users/{uid}/buckets

Parameters

uid
string
path
-

Endpoint

curl -X GET http://mgmt-node:8080/api/s3/users/{uid}/buckets
                

Response 200

bucket
string
optional
-
placement_rule
string
optional
-
id
string
optional
-
owner
string
optional
-
zonegroup
string
optional
-
modified
integer
optional
-
usage
object
optional
Data usage by zone.
quota
object
optional
-
usageSum
object
optional
-

Example response

[
  {
    "bucket": "string",
    "placement_rule": "string",
    "id": "string",
    "owner": "string",
    "zonegroup": "string",
    "modified": 0,
    "usage": {},
    "quota": {
      "enabled": true,
      "maxSizeKb": 0,
      "maxObjects": 0
    },
    "usageSum": {
      "sizeKb": 0,
      "sizeKbActual": 0,
      "numObjects": 0
    }
  }
]
                  

GET /s3/buckets

Parameters

No parameters...

Endpoint

curl -X GET http://mgmt-node:8080/api/s3/buckets
                

Response 200

bucket
string
optional
-
placement_rule
string
optional
-
id
string
optional
-
owner
string
optional
-
zonegroup
string
optional
-
modified
integer
optional
-
usage
object
optional
Data usage by zone.
quota
object
optional
-
usageSum
object
optional
-

Example response

[
  {
    "bucket": "string",
    "placement_rule": "string",
    "id": "string",
    "owner": "string",
    "zonegroup": "string",
    "modified": 0,
    "usage": {},
    "quota": {
      "enabled": true,
      "maxSizeKb": 0,
      "maxObjects": 0
    },
    "usageSum": {
      "sizeKb": 0,
      "sizeKbActual": 0,
      "numObjects": 0
    }
  }
]
                  

GET /s3/placements

Parameters

No parameters...

Endpoint

curl -X GET http://mgmt-node:8080/api/s3/placements
                

Response 200

Example response

{}
                  

PUT /s3/placements/{name}

Parameters

name
string
path
The name for the policy, each zone within a zonegroup must have a policy with the same name.
body
object
optional
-

Endpoint

curl -X PUT http://mgmt-node:8080/api/s3/placements/{name}
                

Example body

{
  "dataPool": "string"
}
                

DELETE /s3/placements/{name}

Parameters

name
string
path
-

Endpoint

curl -X DELETE http://mgmt-node:8080/api/s3/placements/{name}
                

PUT /s3/buckets/{bucketName}/quota

Parameters

bucketName
string
path
-
body
object
optional
-

Endpoint

curl -X PUT http://mgmt-node:8080/api/s3/buckets/{bucketName}/quota
                

Example body

{
  "enabled": true,
  "maxSizeKb": 0,
  "maxObjects": 0
}
                

GET /s3/buckets/{bucketName}

Parameters

bucketName
string
path
-

Endpoint

curl -X GET http://mgmt-node:8080/api/s3/buckets/{bucketName}
                

Response 200

cors
array
optional
-
acl
array
optional
-
versioning
string
optional
[OFF, ENABLED, SUSPENDED, UNKNOWN]

Example response

{
  "cors": [
    {
      "id": "string",
      "allowedMethods": [
        "GET"
      ],
      "allowedOrigins": [
        "string"
      ],
      "maxAgeSeconds": 0,
      "exposedHeaders": [
        "string"
      ],
      "allowedHeaders": [
        "string"
      ]
    }
  ],
  "acl": [
    {
      "grantee": "ALL_USERS",
      "userId": "string",
      "displayName": "string",
      "permission": "FullControl"
    }
  ],
  "versioning": "OFF"
}
                  

PUT /s3/buckets/{bucketName}

Parameters

bucketName
string
path
-
body
object
optional
Create an S3 bucket.

Endpoint

curl -X PUT http://mgmt-node:8080/api/s3/buckets/{bucketName}
                

Example body

{
  "owner": "string",
  "placement": "string",
  "acl": [
    {
      "grantee": "ALL_USERS",
      "userId": "string",
      "displayName": "string",
      "permission": "FullControl"
    }
  ],
  "expectedNumberOfObjects": 0,
  "endpoint": "string"
}
                

Response 200

result
object
optional
-
name
string
optional
-
id
integer
optional
-
state
string
optional
[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
statusCode
integer
optional
-
done
boolean
optional
-
startedAt
integer
optional
-
startedBy
string
optional
-
object
string
optional
-
output
string
optional
-

Example response

{
  "result": {},
  "name": "string",
  "id": 0,
  "state": "WAITING",
  "statusCode": 0,
  "done": true,
  "startedAt": 0,
  "startedBy": "string",
  "object": "string",
  "output": "string"
}
                  

DELETE /s3/buckets/{bucketName}

Parameters

bucketName
string
path
-
body
object
optional
-

Endpoint

curl -X DELETE http://mgmt-node:8080/api/s3/buckets/{bucketName}
                

Example body

{
  "name": "string",
  "deleteData": true,
  "thisWillDeleteData": "string"
}
                

Response 200

result
object
optional
-
name
string
optional
-
id
integer
optional
-
state
string
optional
[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
statusCode
integer
optional
-
done
boolean
optional
-
startedAt
integer
optional
-
startedBy
string
optional
-
object
string
optional
-
output
string
optional
-

Example response

{
  "result": {},
  "name": "string",
  "id": 0,
  "state": "WAITING",
  "statusCode": 0,
  "done": true,
  "startedAt": 0,
  "startedBy": "string",
  "object": "string",
  "output": "string"
}
                  

PATCH /s3/buckets/{bucketName}

Parameters

bucketName
string
path
-
body
object
optional
Update an S3 bucket.

Endpoint

curl -X PATCH http://mgmt-node:8080/api/s3/buckets/{bucketName}
                

Example body

{
  "owner": "string",
  "acl": [
    {
      "grantee": "ALL_USERS",
      "userId": "string",
      "displayName": "string",
      "permission": "FullControl"
    }
  ]
}
                

GET /s3/buckets/{bucketName}/objects

Parameters

bucketName
string
path
-
max
integer
query
optional
-
prefix
string
query
optional
-
continuationToken
string
query
optional
-
flatView
boolean
query
optional
-

Endpoint

curl -X GET http://mgmt-node:8080/api/s3/buckets/{bucketName}/objects?max=0&prefix=string&continuationToken=string&flatView=true
                

Response 200

prefixes
array
optional
-
objects
array
optional
-
continuationToken
string
optional
-

Example response

{
  "prefixes": [
    "string"
  ],
  "objects": [
    {
      "bucketName": "string",
      "key": "string",
      "size": 0,
      "lastModified": "string",
      "storageClass": "string",
      "owner": {
        "displayName": "string",
        "id": "string"
      },
      "etag": "string"
    }
  ],
  "continuationToken": "string"
}
                  

DELETE /s3/buckets/{bucketName}/objects

Parameters

bucketName
string
path
-
key
string
query
optional
-

Endpoint

curl -X DELETE http://mgmt-node:8080/api/s3/buckets/{bucketName}/objects?key=string
                

GET /s3/buckets/{bucketName}/multipart-uploads

Parameters

bucketName
string
path
-
max
integer
query
optional
-
prefix
string
query
optional
-
continuationToken
string
query
optional
-
flatView
boolean
query
optional
-

Endpoint

curl -X GET http://mgmt-node:8080/api/s3/buckets/{bucketName}/multipart-uploads?max=0&prefix=string&continuationToken=string&flatView=true
                

Response 200

prefixes
array
optional
-
objects
array
optional
-
continuationToken
string
optional
-

Example response

{
  "prefixes": [
    "string"
  ],
  "objects": [
    {
      "key": "string",
      "uploadId": "string",
      "owner": {
        "displayName": "string",
        "id": "string"
      },
      "initiator": {
        "displayName": "string",
        "id": "string"
      },
      "storageClass": "string",
      "initiated": "string"
    }
  ],
  "continuationToken": "string"
}
                  

DELETE /s3/buckets/{bucketName}/multipart-uploads

Parameters

bucketName
string
path
-
key
string
query
optional
-
uploadId
string
query
optional
-

Endpoint

curl -X DELETE http://mgmt-node:8080/api/s3/buckets/{bucketName}/multipart-uploads?key=string&uploadId=string
                

GET /s3/buckets/{bucketName}/objects/metadata

Parameters

bucketName
string
path
-
key
string
query
optional
-

Endpoint

curl -X GET http://mgmt-node:8080/api/s3/buckets/{bucketName}/objects/metadata?key=string
                

Response 200

raw
object
optional
-
lastModified
integer
optional
-
contentType
string
optional
-
etag
string
optional
-
size
integer
optional
-
userMetadata
object
optional
-
versionId
string
optional
-
contentDisposition
string
optional
-
cacheControl
string
optional
-
expirationTime
integer
optional
-
expirationTimeRuleId
string
optional
-
contentEncoding
string
optional
-
contentLanguage
string
optional
-
contentMD5
string
optional
-
httpExpiresDate
integer
optional
-

Example response

{
  "raw": {},
  "lastModified": 0,
  "contentType": "string",
  "etag": "string",
  "size": 0,
  "userMetadata": {},
  "versionId": "string",
  "contentDisposition": "string",
  "cacheControl": "string",
  "expirationTime": 0,
  "expirationTimeRuleId": "string",
  "contentEncoding": "string",
  "contentLanguage": "string",
  "contentMD5": "string",
  "httpExpiresDate": 0
}
                  

PUT /s3/buckets/{bucketName}/objects/metadata

Parameters

bucketName
string
path
-
key
string
query
optional
-
body
object
optional
-

Endpoint

curl -X PUT http://mgmt-node:8080/api/s3/buckets/{bucketName}/objects/metadata?key=string
                

Example body

{
  "raw": {},
  "lastModified": 0,
  "contentType": "string",
  "etag": "string",
  "size": 0,
  "userMetadata": {},
  "versionId": "string",
  "contentDisposition": "string",
  "cacheControl": "string",
  "expirationTime": 0,
  "expirationTimeRuleId": "string",
  "contentEncoding": "string",
  "contentLanguage": "string",
  "contentMD5": "string",
  "httpExpiresDate": 0
}
                

GET /s3/buckets/{bucketName}/objects/acl

Parameters

bucketName
string
path
-
key
string
query
optional
-

Endpoint

curl -X GET http://mgmt-node:8080/api/s3/buckets/{bucketName}/objects/acl?key=string
                

Response 200

grantee
string
optional
[ALL_USERS, AUTHENTICATED_USERS, SINGLE_USER, LOG_DELIVERY]
userId
string
optional
Only meaningful if grantee == SINGLE_USER.
displayName
string
optional
Informational. Not used when setting ACLs.
permission
string
optional
[FullControl, Read, Write, ReadAcp, WriteAcp]

Example response

[
  {
    "grantee": "ALL_USERS",
    "userId": "string",
    "displayName": "string",
    "permission": "FullControl"
  }
]
                  

PUT /s3/buckets/{bucketName}/objects/acl

Parameters

bucketName
string
path
-
key
string
query
optional
-
body
object
optional
An ACL entry for a bucket, see S3 documentation for details.

Endpoint

curl -X PUT http://mgmt-node:8080/api/s3/buckets/{bucketName}/objects/acl?key=string
                

Example body

[
  {
    "grantee": "ALL_USERS",
    "userId": "string",
    "displayName": "string",
    "permission": "FullControl"
  }
]
                

GET /s3/buckets/{bucketName}/download

Parameters

bucketName
string
path
-
key
string
query
optional
-

Endpoint

curl -X GET http://mgmt-node:8080/api/s3/buckets/{bucketName}/download?key=string
                

Response 200

fileName
string
optional
-
url
string
optional
-
fileContents
string
optional
-

Example response

{
  "fileName": "string",
  "url": "string",
  "fileContents": "string"
}
                  

PUT /s3/buckets/{bucketName}/upload

Parameters

bucketName
string
path
-
key
string
formData
optional
-
file
file
formData
optional
-
size
integer
formData
optional
Required to write large files directly into Ceph, uploads without this field must be buffered in RAM

Endpoint

curl -X PUT http://mgmt-node:8080/api/s3/buckets/{bucketName}/upload
                

PUT /s3/buckets/{bucketName}/objects/copy

Parameters

bucketName
string
path
-
key
string
query
optional
-
dstBucketName
string
query
optional
-
dstKey
string
query
optional
-

Endpoint

curl -X PUT http://mgmt-node:8080/api/s3/buckets/{bucketName}/objects/copy?key=string&dstBucketName=string&dstKey=string
                

PUT /s3/buckets/{bucketName}/objects/move

Parameters

bucketName
string
path
-
key
string
query
optional
-
dstBucketName
string
query
optional
-
dstKey
string
query
optional
-

Endpoint

curl -X PUT http://mgmt-node:8080/api/s3/buckets/{bucketName}/objects/move?key=string&dstBucketName=string&dstKey=string
                

GET /s3/usage/by-user/{uid}

Parameters

uid
string
path
-
hours
integer
query
optional
How many hours to go back.

Endpoint

curl -X GET http://mgmt-node:8080/api/s3/usage/by-user/{uid}?hours=0
                

Response 200

buckets
object
optional
All buckets accessed by this user, entries are split into 1 hour intervals

Example response

{
  "buckets": {}
}
                  

GET /s3/usage/by-bucket/{bucketName}

Parameters

bucketName
string
path
-
hours
integer
query
optional
How many hours to go back.

Endpoint

curl -X GET http://mgmt-node:8080/api/s3/usage/by-bucket/{bucketName}?hours=0
                

Response 200

buckets
object
optional
All users (unauthenticated access is mapped to "anonymous") accessing this bucket, entries are split into 1 hour intervals.

Example response

{
  "buckets": {}
}