www.tigrisdata.com Open in urlscan Pro
76.76.21.241  Public Scan

Submitted URL: http://www.tigrisdata.com/
Effective URL: https://www.tigrisdata.com/
Submission: On January 22 via api from US — Scanned from DE

Form analysis 0 forms found in the DOM

Text Content

AboutDocsBlogPricing
Get started
Get started




GLOBALLY DISTRIBUTED
S3-COMPATIBLE OBJECT STORAGE

Tigris is a globally distributed S3-compatible object storage service that
provides low latency anywhere in the world, enabling developers to store and
access any amount of data for a wide range of use cases.

Get started




Trusted by





BUILT BY THE TEAM THAT BUILT AND OPERATED UBER'S STORAGE PLATFORM.



Single Global Endpoint

Seamless global access to object storage with our single global endpoint.

Store Data Near Users

Data stored close to the users automatically ensuring low latency everywhere.

S3 Compatible API

Global and fast object storage with familiar AWS S3 tools, libraries, and
extensions.

Fast Small Object Retrieval

Access small objects at close to Redis speed, ensuring swift, efficient
retrieval.


Node.js
Ruby
Python
Go

import { S3Client } from "@aws-sdk/client-s3";
import { Upload } from "@aws-sdk/lib-storage";
import fs from "fs";

const client = new S3Client({
  region: "auto",
  endpoint: "https://fly.storage.tigris.dev",
});

const fileStream = fs.createReadStream("Docker.dmg");
(async () => {
  const upload = new Upload({
    params: {
      Bucket: "foo-bucket",
      Key: "Docker-100.dmg",
      Body: fileStream,
    },
    client: client,
  });

  await upload.done();
})();



require "aws-sdk"

bucket_name = "foo-bucket"

s3 = Aws::S3::Client.new(
    region: "auto",
    endpoint: "https://fly.storage.tigris.dev",
)

# List the first ten objects in the bucket
resp = s3.list_objects(bucket: 'foo-bucket', max_keys: 10)
resp.contents.each do |object|
    puts "#{object.key} => #{object.etag}"
end

# Put an object into the bucket
file_name = "bar-file-#{Time.now.to_i}"
begin
    s3.put_object(
        bucket: bucket_name,
        key: file_name,
        body: File.read("bar.txt")
    )
    puts "Uploaded #{file_name} to #{bucket_name}."
rescue Exception => e
    puts "Failed to upload #{file_name} with error: #{e.message}"
    exit "Please fix error with file upload before continuing."
end



import boto3

# Create S3 service client
svc = boto3.client('s3', endpoint_url='https://fly.storage.tigris.dev')

# List buckets
response = svc.list_buckets()

for bucket in response['Buckets']:
    print(f'  {bucket["Name"]}')

# List objects
response = svc.list_objects_v2(Bucket='foo-bucket')

for obj in response['Contents']:
    print(f'  {obj["Key"]}')

# Upload file
response = svc.upload_file('bar.txt', 'foo-bucket', 'bar.txt')

# Download file
response = svc.download_file('foo-bucket', 'bar.txt', 'bar-downloaded.txt')



package main

import (
	"context"
	"log"
	"os"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/config"
	"github.com/aws/aws-sdk-go-v2/service/s3"
)

func main() {
	sdkConfig, err := config.LoadDefaultConfig(context.TODO())
	if err != nil {
		log.Printf("Couldn't load default configuration. Here's why: %v\n", err)
		return
	}

	// Create S3 service client
	svc := s3.NewFromConfig(sdkConfig, func(o *s3.Options) {
		o.BaseEndpoint = aws.String("https://fly.storage.tigris.dev")
	})

	file, err := os.Open("bar.txt")
	if err != nil {
		log.Printf("Couldn't open file to upload. Here's why: %v\n", err)
		return
	} else {
		defer file.Close()
		_, err = svc.PutObject(context.TODO(), &s3.PutObjectInput{
			Bucket: aws.String("foo-bucket"),
			Key:    aws.String("bar.txt"),
			Body:   file,
		})
		if err != nil {
			log.Printf("Couldn't upload file. Here's why: %v\n", err)
		}
	}
}





GLOBAL REACH, FAMILIAR S3 API

Leverage our S3-compatible API for a seamless transition and enhanced object
storage experience.

 * Eliminates the complexity of managing data across multiple regions.

 * Ensures your data is available everywhere you need it, without geographical
   limitations.

 * Seamlessly integrates with existing applications via standard AWS S3 SDKs and
   libraries.




STORE DATA CLOSE TO USERS

Forget regional complexities. Data is automatically stored and distributed close
to your users, ensuring optimal availability and latency.






IT'S EASY TO GET GOING




SIGNUP FOR EARLY ACCESS

To use Tigris, you need a Fly.io account. If you don’t already have one, you can
get yourself one here. Then signup for the waitlist and we will reach out to you
as soon as possible.

Signup





CREATE A BUCKET

Every object in Tigris is stored in a bucket. Before you can store data in
Tigris, you have to create a bucket. Buckets are global and we automatically
store the data close to your users. If your users move to a different region,
the data moves with them.






START BUILDING

Now that you have created a bucket, you are ready to store objects in it. An
object can be any kind of file: a text file, a photo, a video and so on. Choose
from a wide range of S3 tools, libraries, and extensions.






KNOWLEDGE HUB



How does Tigris ensure data accessibility around the world?




In Tigris, buckets are inherently global entities. This means that the objects
within your bucket are stored in the region where the initial requests are made.
To optimize performance and reduce latency, these objects are intelligently
distributed to other regions based on the access patterns observed over time.



Tell me more about the S3-compatible API. How does it work?




Tigris is compatible with the AWS S3 API. This means that you can use the
standard AWS S3 SDKs, tool and libraries with Tigris. See the S3 API
Compatibility section in our docs for more details. We also have language
specific guides on how to use the AWS S3 SDKs with Tigris.



How do I signup and get access to Tigris?




Tigris is currently in private beta. To have your account setup you can signup
for the waitlist and we will reach out to you as soon as we can enable your
account. See the Getting Started section in our docs for more details.



What is Tigris pricing like?




Tigris pricing is designed so that you only pay for what you use. There are no
minimum fees and no upfront commitments. Tigris pricing is based on three major
components: Data Storage, Requests, and Data Transfer. You can read more about
our pricing and free allowance in the Pricing guide.




READY TO EMBARK ON YOUR JOURNEY WITH TIGRIS?

Get started


Connect with us




Resources

Docs
Blog

Legal

Privacy Policy
Terms of Service


Copyright @2023