# Tigris Blog

A multi-cloud, S3-compatible object storage service for low latency data access anywhere.

Self-hosted ClickHouse runs on cheap compute, but its backups and cold tier usually live on AWS S3, and AWS charges $0.09/GB to read your own data back. Point BACKUP TO S3 and TTL tiering at Tigris instead. You keep the same stock ClickHouse features, you pay zero egress fees, and disaster recovery…

## Posts

### Presigned URLs are replay attacks you commit on purpose
How SigV4 signs the clock, what a presigned URL grants on Tigris storage, and what it costs you.

### Move an entire bucket to Tigris in one command
The Tigris CLI scans every object and migrates it safely from any S3-compatible provider. Here's how to set it up.

### Tigris bundles let you pull thousands of objects in one HTTP request
as a streaming tar archive — no more one GET per object. Here's how it works and why.

### Tigris now supports soft delete for buckets and objects
Enable it once, and every delete becomes recoverable for up to 90 days before it's permanently removed.

### StorageSDK is a provider-agnostic storage API for Node.js
One interface across S3, R2, Azure, GCS, Tigris, and more, with snapshots and forks built in.

### Kefka is a userspace shell sandbox in Go
That gives every AI agent its own copy-on-write Tigris bucket fork plus Python, jq, and ripgrep via WebAssembly.

### Tigris lifecycle rules now support multiple rules per bucket
With prefix filters, so you can mix transitions and expirations across different prefixes.

### We embedded agent-shell on the Tigris homepage
So you can ls, cat, and cd through your buckets like a normal filesystem. Here's how it works.

### How Basic Memory uses per-tenant Tigris buckets
Rclone bisync, and bucket snapshots to give every user a portable Markdown knowledge base.

### A new TypeScript SDK giving AI agents the storage primitives they need
Forks, workspaces, checkpoints, and event-driven coordination on Tigris.

### Use Tigris object notifications to coordinate AI agents
Without deploying a message queue. A writer/watcher pattern turns your bucket into an event bus.
