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
application/json
Body
Example (auto)
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):
- Omit field entirely: Keeps existing settings unchanged
- Include only
enabled: Toggles notifications on/off while preserving all other config - Include any field: Updates specified fields, preserves others (auth not re-required)
- Remove completely: Send
{"enabled": false}with no other fields
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:
- Specific region(s): "iad", "sjc", "iad,sjc,lhr" (comma-separated)
- No restrictions (global distribution): "global"
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
- 200
- default
OK
application/json
Schema
Example (auto)
Schema
object object
{}
Unexpected error
application/json
Schema
Example (auto)
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
csharp
curl
dart
go
http
java
javascript
kotlin
c
nodejs
objective-c
ocaml
php
postman-cli
powershell
python
r
ruby
rust
shell
swift
HTTPCLIENT
RESTSHARP
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
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!