From 6e4d44c7be5ef85b91336b5d81387bda46562f29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Pe=C3=B1a-Castellanos?= Date: Tue, 16 Jun 2026 22:03:10 -0500 Subject: [PATCH 1/5] docs: document S3-compatible object stores for the model repository MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gonzalo Peña-Castellanos --- docs/user_guide/model_repository.md | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/docs/user_guide/model_repository.md b/docs/user_guide/model_repository.md index 1a641a45c7..03b7239129 100644 --- a/docs/user_guide/model_repository.md +++ b/docs/user_guide/model_repository.md @@ -167,6 +167,39 @@ export TRITON_AWS_MOUNT_DIRECTORY=/path/to/your/local/directory **Make sure, that `TRITON_AWS_MOUNT_DIRECTORY` exists on your local machine and it is empty.** +##### S3-compatible object stores + +The S3 backend also works with S3-compatible object stores such as Backblaze B2, Cloudflare R2, and MinIO. The repository path uses the private-instance form described above, with the provider's endpoint as the host, and the credentials and region are passed through the same environment variables as Amazon S3. + +```bash +$ tritonserver --model-repository=s3://https://s3.us-west-004.backblazeb2.com:443/bucket/path/to/model/repository ... +``` + +Replace `s3.us-west-004.backblazeb2.com` with the endpoint for your provider and region. + +```bash +$ export AWS_ACCESS_KEY_ID="" +$ export AWS_SECRET_ACCESS_KEY="" +$ export AWS_DEFAULT_REGION="us-west-004" +$ tritonserver --model-repository=s3://https://s3.us-west-004.backblazeb2.com:443/my-bucket/models ... +``` + +The credential file described [above](#cloud-storage-with-credential-file-beta) can also be used for an S3-compatible endpoint by adding an `s3://` entry keyed by the full bucket path. + +```json +{ + "s3": { + "s3://https://s3.us-west-004.backblazeb2.com:443/my-bucket": { + "secret_key": "", + "key_id": "", + "region": "us-west-004", + "session_token": "", + "profile": "" + } + } +} +``` + #### Azure Storage For a model repository residing in Azure Storage, the repository path must be prefixed with as://. From 008fdc5a8a2b184fd9c78d9c637a632d2cf0ba20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Pe=C3=B1a-Castellanos?= Date: Thu, 9 Jul 2026 20:38:04 -0500 Subject: [PATCH 2/5] docs: align S3-compatible section heading --- docs/user_guide/model_repository.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user_guide/model_repository.md b/docs/user_guide/model_repository.md index 03b7239129..8dbf454e49 100644 --- a/docs/user_guide/model_repository.md +++ b/docs/user_guide/model_repository.md @@ -167,7 +167,7 @@ export TRITON_AWS_MOUNT_DIRECTORY=/path/to/your/local/directory **Make sure, that `TRITON_AWS_MOUNT_DIRECTORY` exists on your local machine and it is empty.** -##### S3-compatible object stores +#### S3-compatible object stores The S3 backend also works with S3-compatible object stores such as Backblaze B2, Cloudflare R2, and MinIO. The repository path uses the private-instance form described above, with the provider's endpoint as the host, and the credentials and region are passed through the same environment variables as Amazon S3. From 1e1ddc689caf8e1dac422c27c3efd482aed74462 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Pe=C3=B1a-Castellanos?= Date: Thu, 9 Jul 2026 21:04:50 -0500 Subject: [PATCH 3/5] docs: generalize S3-compatible endpoint examples --- docs/user_guide/model_repository.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/user_guide/model_repository.md b/docs/user_guide/model_repository.md index 8dbf454e49..1c7aead065 100644 --- a/docs/user_guide/model_repository.md +++ b/docs/user_guide/model_repository.md @@ -169,19 +169,19 @@ export TRITON_AWS_MOUNT_DIRECTORY=/path/to/your/local/directory #### S3-compatible object stores -The S3 backend also works with S3-compatible object stores such as Backblaze B2, Cloudflare R2, and MinIO. The repository path uses the private-instance form described above, with the provider's endpoint as the host, and the credentials and region are passed through the same environment variables as Amazon S3. +The S3 backend also works with any endpoint that implements the S3-compatible API, such as Backblaze B2, Cloudflare R2, and MinIO. The repository path uses the private-instance form described above, with the provider's endpoint as the host, and the credentials and region are passed through the same environment variables as Amazon S3. ```bash -$ tritonserver --model-repository=s3://https://s3.us-west-004.backblazeb2.com:443/bucket/path/to/model/repository ... +$ tritonserver --model-repository=s3://https://s3.us-west-2.amazonaws.com:443/bucket/path/to/model/repository ... ``` -Replace `s3.us-west-004.backblazeb2.com` with the endpoint for your provider and region. +Replace `s3.us-west-2.amazonaws.com` with the S3-compatible endpoint for your provider and region. ```bash $ export AWS_ACCESS_KEY_ID="" $ export AWS_SECRET_ACCESS_KEY="" -$ export AWS_DEFAULT_REGION="us-west-004" -$ tritonserver --model-repository=s3://https://s3.us-west-004.backblazeb2.com:443/my-bucket/models ... +$ export AWS_DEFAULT_REGION="us-west-2" +$ tritonserver --model-repository=s3://https://s3.us-west-2.amazonaws.com:443/my-bucket/models ... ``` The credential file described [above](#cloud-storage-with-credential-file-beta) can also be used for an S3-compatible endpoint by adding an `s3://` entry keyed by the full bucket path. @@ -189,10 +189,10 @@ The credential file described [above](#cloud-storage-with-credential-file-beta) ```json { "s3": { - "s3://https://s3.us-west-004.backblazeb2.com:443/my-bucket": { + "s3://https://s3.us-west-2.amazonaws.com:443/my-bucket": { "secret_key": "", "key_id": "", - "region": "us-west-004", + "region": "us-west-2", "session_token": "", "profile": "" } From 273394ac9663fb953601d1eb9df32616a1d0389b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Pe=C3=B1a-Castellanos?= Date: Thu, 9 Jul 2026 21:05:44 -0500 Subject: [PATCH 4/5] docs: clarify S3 credential file key --- docs/user_guide/model_repository.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user_guide/model_repository.md b/docs/user_guide/model_repository.md index 1c7aead065..d3e88a71f9 100644 --- a/docs/user_guide/model_repository.md +++ b/docs/user_guide/model_repository.md @@ -184,7 +184,7 @@ $ export AWS_DEFAULT_REGION="us-west-2" $ tritonserver --model-repository=s3://https://s3.us-west-2.amazonaws.com:443/my-bucket/models ... ``` -The credential file described [above](#cloud-storage-with-credential-file-beta) can also be used for an S3-compatible endpoint by adding an `s3://` entry keyed by the full bucket path. +The credential file described in [Cloud Storage with Credential file (Beta)](#cloud-storage-with-credential-file-beta) can also be used for an S3-compatible endpoint by adding an `s3` entry keyed by the bucket URI, including the custom endpoint when used. ```json { From b8fa6f889259d6d0daa4562a479d90ec9a81c14a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Pe=C3=B1a-Castellanos?= Date: Thu, 9 Jul 2026 21:10:19 -0500 Subject: [PATCH 5/5] docs: nest S3-compatible guidance --- docs/user_guide/model_repository.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/user_guide/model_repository.md b/docs/user_guide/model_repository.md index d3e88a71f9..2f18e07d9c 100644 --- a/docs/user_guide/model_repository.md +++ b/docs/user_guide/model_repository.md @@ -167,7 +167,7 @@ export TRITON_AWS_MOUNT_DIRECTORY=/path/to/your/local/directory **Make sure, that `TRITON_AWS_MOUNT_DIRECTORY` exists on your local machine and it is empty.** -#### S3-compatible object stores +##### S3-compatible object stores The S3 backend also works with any endpoint that implements the S3-compatible API, such as Backblaze B2, Cloudflare R2, and MinIO. The repository path uses the private-instance form described above, with the provider's endpoint as the host, and the credentials and region are passed through the same environment variables as Amazon S3. @@ -175,7 +175,7 @@ The S3 backend also works with any endpoint that implements the S3-compatible AP $ tritonserver --model-repository=s3://https://s3.us-west-2.amazonaws.com:443/bucket/path/to/model/repository ... ``` -Replace `s3.us-west-2.amazonaws.com` with the S3-compatible endpoint for your provider and region. +Replace `s3.us-west-2.amazonaws.com:443` with the S3-compatible endpoint and port for your provider and region. ```bash $ export AWS_ACCESS_KEY_ID=""