s3
Manage S3 access.
GET /s3/buckets/{bucketName}/policy
Parameters
bucketName
string
path
-
Endpoint
curl -X GET http://mgmt-node:8080/api/s3/buckets/{bucketName}/policy
Response 200
policyText
string
optional
-
Example response
{
"policyText": "string"
}
POST /s3/buckets/{bucketName}/policy
Parameters
bucketName
string
path
-
Endpoint
curl -X POST http://mgmt-node:8080/api/s3/buckets/{bucketName}/policy
Example body
DELETE /s3/buckets/{bucketName}/policy
Parameters
bucketName
string
path
-
Endpoint
curl -X DELETE http://mgmt-node:8080/api/s3/buckets/{bucketName}/policy
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
-
statusCode
integer
optional
-
id
integer
optional
-
done
boolean
optional
-
startedAt
integer
optional
-
startedBy
string
optional
-
progress
object
optional
Progress indication of a background task.
name
string
optional
-
state
string
optional
[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
object
string
optional
-
output
string
optional
-
Example response
{
"result": {},
"statusCode": 0,
"id": 0,
"done": true,
"startedAt": 0,
"startedBy": "string",
"progress": {
"total": 0,
"complete": 0
},
"name": "string",
"state": "WAITING",
"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
-
statusCode
integer
optional
-
id
integer
optional
-
done
boolean
optional
-
startedAt
integer
optional
-
startedBy
string
optional
-
progress
object
optional
Progress indication of a background task.
name
string
optional
-
state
string
optional
[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
object
string
optional
-
output
string
optional
-
Example response
{
"result": {},
"statusCode": 0,
"id": 0,
"done": true,
"startedAt": 0,
"startedBy": "string",
"progress": {
"total": 0,
"complete": 0
},
"name": "string",
"state": "WAITING",
"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": [
{
"prefix": "string",
"lastModified": "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": {}
}