# s3

Manage S3 access.
Set management node URL:

# GET /s3/users

# Parameters

  • No parameters...

# Endpoint

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

# Response 200

  • uidstringoptional-
  • namestringoptional-
  • emailstringoptional-
  • suspendedbooleanoptional-
  • subusersarrayoptional-
    • subuserstringoptional-
    • permissionsstringoptional[full-control, read-write, read, write]
  • bucketQuotaobjectoptional-
    • enabledbooleanoptional-
    • maxSizeKbintegeroptional-
    • maxObjectsintegeroptional-
  • userQuotaobjectoptional-
    • enabledbooleanoptional-
    • maxSizeKbintegeroptional-
    • maxObjectsintegeroptional-

# 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

  • bodyobjectoptional-
    • uidstringoptional-
    • namestringoptional-
    • emailstringoptional-

# Endpoint

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

# Example body

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

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

# Parameters

  • uidstringpath-

# Endpoint

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

# Response 200

  • userstringoptional-
  • accessKeystringoptional-
  • secretKeystringoptional-

# Example response

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

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

# Parameters

  • uidstringpath-
  • subuserstringpath-

# Endpoint

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

# Response 200

  • userstringoptional-
  • accessKeystringoptional-
  • secretKeystringoptional-

# Example response

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

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

# Parameters

  • uidstringpath-

# Endpoint

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

# Response 200

  • fileNamestringoptional-
  • urlstringoptional-
  • fileContentsstringoptional-

# Example response

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

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

# Parameters

  • uidstringpath-
  • subuserstringpath-

# Endpoint

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

# Response 200

  • fileNamestringoptional-
  • urlstringoptional-
  • fileContentsstringoptional-

# Example response

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

# POST /s3/users/{uid}

# Parameters

  • uidstringpath-
  • bodyobjectoptional-
    • subuserstringoptional-
    • permissionsstringoptional[full-control, read-write, read, write]

# Endpoint

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

# Example body

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

# DELETE /s3/users/{uid}

# Parameters

  • uidstringpath-

# Endpoint

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

# PATCH /s3/users/{uid}

# Parameters

  • uidstringpath-
  • bodyobjectoptional-
    • namestringoptional-
    • emailstringoptional-
    • suspendedbooleanoptional-

# 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

  • uidstringpath-
  • subuserstringpath-

# Endpoint

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

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

# Parameters

  • uidstringpath-
  • subuserstringpath-
  • bodyobjectoptional-
    • permissionsstringoptional[full-control, read-write, read, write]

# Endpoint

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

# Example body

{
  "permissions": "full-control"
}

# PUT /s3/users/{uid}/quota

Set a quota for this user.

# Parameters

  • uidstringpath-
  • bodyobjectoptional-
    • enabledbooleanoptional-
    • maxSizeKbintegeroptional-
    • maxObjectsintegeroptional-

# 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

Set a quota for all buckets owned by this user.

# Parameters

  • uidstringpath-
  • bodyobjectoptional-
    • enabledbooleanoptional-
    • maxSizeKbintegeroptional-
    • maxObjectsintegeroptional-

# Endpoint

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

# Example body

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

# GET /s3/buckets

# Parameters

  • No parameters...

# Endpoint

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

# Response 200

  • bucketstringoptional-
  • placementRulestringoptional-
  • idstringoptional-
  • ownerstringoptional-
  • modifiedintegeroptional-
  • usageobjectoptionalData usage by zone.
  • quotaobjectoptional-
    • enabledbooleanoptional-
    • maxSizeKbintegeroptional-
    • maxObjectsintegeroptional-
  • usageSumobjectoptional-
    • sizeKbintegeroptional-
    • sizeKbActualintegeroptional-
    • numObjectsnumberoptional-

# Example response

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

# GET /s3/buckets/{bucketName}

# Parameters

  • bucketNamestringpath-

# Endpoint

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

# Response 200

  • corsarrayoptional-
    • idstringoptional-
    • allowedMethodsarrayoptional-
    • allowedOriginsarrayoptional-
    • maxAgeSecondsintegeroptional-
    • exposedHeadersarrayoptional-
    • allowedHeadersarrayoptional-
  • aclarrayoptional-
    • granteestringoptional[ALL_USERS, AUTHENTICATED_USERS, SINGLE_USER, LOG_DELIVERY]
    • userIdstringoptionalOnly meaningful if grantee == SINGLE_USER.
    • displayNamestringoptionalInformational. Not used when setting ACLs.
    • permissionstringoptional[FullControl, Read, Write, ReadAcp, WriteAcp]

# 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"
    }
  ]
}

# PUT /s3/buckets/{bucketName}

# Parameters

  • bucketNamestringpath-
  • bodyobjectoptionalRequest to create or update an S3 bucket.
    • ownerstringoptionalChange owner to this uid.
    • aclarrayoptional-
      • granteestringoptional[ALL_USERS, AUTHENTICATED_USERS, SINGLE_USER, LOG_DELIVERY]
      • userIdstringoptionalOnly meaningful if grantee == SINGLE_USER.
      • displayNamestringoptionalInformational. Not used when setting ACLs.
      • permissionstringoptional[FullControl, Read, Write, ReadAcp, WriteAcp]

# Endpoint

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

# Example body

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

# Response 200

  • statusCodeintegeroptional-
  • idintegeroptional-
  • startedBystringoptional-
  • startedAtintegeroptional-
  • donebooleanoptional-
  • namestringoptional-
  • statestringoptional[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstringoptional-
  • outputstringoptional-

# Example response

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

# DELETE /s3/buckets/{bucketName}

# Parameters

  • bucketNamestringpath-
  • bodyobjectoptional-
    • namestringoptional-
    • deleteDatabooleanoptional-
    • thisWillDeleteDatastringoptional-

# Endpoint

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

# Example body

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

# Response 200

  • statusCodeintegeroptional-
  • idintegeroptional-
  • startedBystringoptional-
  • startedAtintegeroptional-
  • donebooleanoptional-
  • namestringoptional-
  • statestringoptional[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstringoptional-
  • outputstringoptional-

# Example response

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

# PATCH /s3/buckets/{bucketName}

# Parameters

  • bucketNamestringpath-
  • bodyobjectoptionalRequest to create or update an S3 bucket.
    • ownerstringoptionalChange owner to this uid.
    • aclarrayoptional-
      • granteestringoptional[ALL_USERS, AUTHENTICATED_USERS, SINGLE_USER, LOG_DELIVERY]
      • userIdstringoptionalOnly meaningful if grantee == SINGLE_USER.
      • displayNamestringoptionalInformational. Not used when setting ACLs.
      • permissionstringoptional[FullControl, Read, Write, ReadAcp, WriteAcp]

# 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

  • bucketNamestringpath-
  • maxintegerqueryoptional-
  • prefixstringqueryoptional-
  • continuationTokenstringqueryoptional-
  • flatViewbooleanqueryoptional-

# Endpoint

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

# Response 200

  • prefixesarrayoptional-
  • objectsarrayoptional-
    • bucketNamestringoptional-
    • keystringoptional-
    • sizeintegeroptional-
    • lastModifiedstringoptional-
    • storageClassstringoptional-
    • ownerobjectoptional-
      • displayNamestringoptional-
      • idstringoptional-
    • etagstringoptional-
  • continuationTokenstringoptional-

# 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

Delete an object by name.

# Parameters

  • bucketNamestringpath-
  • keystringqueryoptional-

# Endpoint

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

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

Get metadata of an object.

# Parameters

  • bucketNamestringpath-
  • keystringqueryoptional-

# Endpoint

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

# Response 200

  • rawobjectoptional-
  • lastModifiedintegeroptional-
  • contentTypestringoptional-
  • etagstringoptional-
  • sizeintegeroptional-
  • userMetadataobjectoptional-
  • versionIdstringoptional-
  • contentDispositionstringoptional-
  • cacheControlstringoptional-
  • expirationTimeintegeroptional-
  • expirationTimeRuleIdstringoptional-
  • contentEncodingstringoptional-
  • contentLanguagestringoptional-
  • contentMD5stringoptional-
  • httpExpiresDateintegeroptional-

# 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

Override object metadata.

# Parameters

  • bucketNamestringpath-
  • keystringqueryoptional-
  • bodyobjectoptional-
    • rawobjectoptional-
    • lastModifiedintegeroptional-
    • contentTypestringoptional-
    • etagstringoptional-
    • sizeintegeroptional-
    • userMetadataobjectoptional-
    • versionIdstringoptional-
    • contentDispositionstringoptional-
    • cacheControlstringoptional-
    • expirationTimeintegeroptional-
    • expirationTimeRuleIdstringoptional-
    • contentEncodingstringoptional-
    • contentLanguagestringoptional-
    • contentMD5stringoptional-
    • httpExpiresDateintegeroptional-

# 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}/download

Download an object.

# Parameters

  • bucketNamestringpath-
  • keystringqueryoptional-

# Endpoint

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

# Response 200

  • fileNamestringoptional-
  • urlstringoptional-
  • fileContentsstringoptional-

# Example response

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

# PUT /s3/buckets/{bucketName}/upload

Upload an object.

# Parameters

  • bucketNamestringpath-
  • keystringformDataoptional-
  • filefileformDataoptional-
  • sizeintegerformDataoptionalRequired 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

Copy an object.

# Parameters

  • bucketNamestringpath-
  • keystringqueryoptional-
  • dstBucketNamestringqueryoptional-
  • dstKeystringqueryoptional-

# 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

Move an object.

# Parameters

  • bucketNamestringpath-
  • keystringqueryoptional-
  • dstBucketNamestringqueryoptional-
  • dstKeystringqueryoptional-

# Endpoint

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