Update bucket settings | Tigris Object Storage Documentation

Update bucket settings

PUT https://mgmt.storage.dev/v1/providers/:provider_id/orgs/:org_id/buckets/:bucket_name

Updates the bucket settings like public access, storage class, and object ACL.

Request

Path Parameters

provider_id string required

Provider ID

org_id string required

Organization ID

bucket_name string required

Bucket name

Body required

public boolean

If set to true, the bucket will be publicly accessible. Default is false.

enable_object_acl boolean

If set to true, per object ACL will be enabled. Default is false.

enable_public_list_objects boolean

If set to true, anonymous users can list objects in public buckets. Only applicable to public buckets.

object_notifications object

Configuration for object event notifications via webhook. Receive HTTP callbacks when objects are created, updated, or deleted in your bucket.

Update behavior (partial updates supported):

Common operations:

// Enable notifications (preserves webhook, filter, auth)

{"enabled": true}

// Disable temporarily (keeps all config for later)

{"enabled": false, "webhook": "https://..."}

// Update webhook only (preserves auth, filter)

{"webhook": "https://new-endpoint.com"}

// Change auth type (replaces entire auth object)

{"auth": {"token": "new-token"}}

// Remove all notifications

{"enabled": false}

Note: Auth credentials are masked in responses. You don't need to re-send them when updating other fields.

enabled boolean required

Enable or disable notifications (webhook required when true)

webhook uri

HTTPS endpoint to receive notification events

Example: https://webhook.example.com/tigris-events

filter string

SQL WHERE clause to filter which objects trigger notifications (e.g., size comparisons)

Example: size > 1000000

auth object

Authentication credentials for webhook endpoint

basic_user string

Basic auth username

basic_pass password

Basic auth password

token password

Bearer token for authorization

regions Regions

Restricts the regions where bucket data is stored. Default is empty, which means no restrictions (global distribution).

Accepted values:

If you want to remove existing region restrictions, you can set the value to "global".

{

"public": true,

"enable_object_acl": true,

"enable_public_list_objects": true,

"object_notifications": {

"enabled": true,

"webhook": "https://webhook.example.com/tigris-events",

"filter": "size > 1000000",

"auth": {

"basic_user": "string",

"basic_pass": "string",

"token": "string"

}

},

"regions": "string"
}

Responses

OK

Schema

object object

{}

Unexpected error

Schema

message string

{

"message": "string"
}

Authorization: X-Tigris-Signature

name: X-Tigris-Signature
type: apiKey
in: header
description: HMAC-SHA256 of the canonical request signed using the signing key.
To create the signature, concatenate the HTTP method, URL, timestamp, and nonce with a newline character in between.
Then, calculate the HMAC-SHA256 of the concatenated string using the signing key. Example:

Create the `canonical_request` as:
```
POST
https://mgmt.storage.dev/provider/your-provider-id/orgs/user-org-id/provision
1731703213870
f8d133cb-5a42-47b1-9ef2-874bb55bab72
```
Then, calculate HMAC-SHA256 of the canonical request using the signing key as:
```
Signature = hex(sha256sign(canonical_request, "signing_key"))
```
name: X-Tigris-Nonce
type: apiKey
in: header
description: Random unique string to identify the request and prevent replay attacks. Example: "f8d133cb-5a42-47b1-9ef2-874bb55bab72"
name: X-Tigris-Time
type: apiKey
in: header
description: Unix timestamp in milliseconds of the request. Example: 1731703213870
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Put, "https://mgmt.storage.dev/v1/providers/:provider_id/orgs/:org_id/buckets/:bucket_name");
request.Headers.Add("Accept", "application/json");
request.Headers.Add("X-Tigris-Signature", "<X-Tigris-Signature>");
request.Headers.Add("X-Tigris-Nonce", "<X-Tigris-Nonce>");
request.Headers.Add("X-Tigris-Time", "<X-Tigris-Time>");
var content = new StringContent("{\n  \"public\": true,\n  \"enable_object_acl\": true,\n  \"enable_public_list_objects\": true,\n  \"object_notifications\": {\n    \"enabled\": true,\n    \"webhook\": \"https://webhook.example.com/tigris-events\",\n    \"filter\": \"size > 1000000\",\n    \"auth\": {\n      \"basic_user\": \"string\",\n      \"basic_pass\": \"string\",\n      \"token\": \"string\"\n    }\n  },\n  \"regions\": \"string\"\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Request Collapse all

Base URL

Edit

https://mgmt.storage.dev

Auth

Signature

Nonce

Timestamp

Parameters

provider_id — path required

org_id — path required

bucket_name — path required

Body required

{
  "public": true,
  "enable_object_acl": true,
  "enable_public_list_objects": true,
  "object_notifications": {
    "enabled": true,
    "webhook": "https://webhook.example.com/tigris-events",
    "filter": "size > 1000000",
    "auth": {
      "basic_user": "string",
      "basic_pass": "string",
      "token": "string"
    }
  },
  "regions": "string"
}

Send API Request

Response Clear

Click the Send API Request button above and see the response here!