Choose a provider
In cloud URLs,/gat is an optional for your objects, not a local directory.
- S3
- Azure
- GCS
- OSS
- Local
Amazon S3 and S3-compatible services use A signing region is required. Gat checks
Without The export command also works with
s3://.1
Set credentials
Set
AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY. For temporary
credentials, also set AWS_SESSION_TOKEN.AWS profiles and configured ECS, EC2, or web-identity credentials also work.2
Add the remote
region, then AWS_REGION,
then AWS_DEFAULT_REGION. It does not read the region from a profile or
detect it from the bucket.S3-compatible storage
S3-compatible storage
Set your service’s and signing region. Use its credentials in the
same AWS environment variables. For local MinIO:Use HTTPS for non-local endpoints.
Named profiles and SSO
Named profiles and SSO
profile, Gat uses AWS_PROFILE or default. Static environment
credentials take precedence over profiles.Modern sso_session profiles and credential_process are not loaded
directly. For SSO, export credentials from the AWS CLI:credential_process profiles. Repeat
the export when credentials expire; Gat does not refresh exported tokens.Public buckets
Public buckets
Use This does not grant permissions. Public buckets usually allow reads, not uploads.
skip_signature=true for unsigned requests. A region is still required.Manage a remote
These examples useorigin. Substitute your remote name as needed:
add and URL-changing update check configuration and backend capabilities—not
connectivity or account permissions. list and show only inspect configuration.Choose where settings are saved
Choose where settings are saved
Local settings override project settings; project settings override global settings.
See Config inheritance for how complete named
definitions override one another.
Update a remote URL
Update a remote URL
--local.
Changing the URL does not copy stored objects. Follow the
storage migration workflow
when moving content to a new store.Use environment variables in a URL
Use environment variables in a URL
export require a POSIX shell; use your shell’s equivalent on Windows.Names must match
[A-Za-z_][A-Za-z0-9_]*. Expansion happens once; shell commands
and ${NAME:-default} are not supported.Troubleshooting and advanced options
Special characters in URL values
Special characters in URL values
Use an environment reference when an option contains special characters:Set
SAS_TOKEN to the token exactly as Azure supplies it. Gat preserves
characters such as &, +, #, and % in query-value substitutions.
Do not add URL encoding. If you previously pre-encoded a variable for Gat,
remove that extra encoding layer.You can also set AZURE_STORAGE_SAS_TOKEN and omit sas_token from the URL.
Literal URLs and whole-URL references retain normal URL semantics; use
references for individual values rather than embedding raw tokens in them.Redacted output and untrusted remotes
Redacted output and untrusted remotes
list and show redact sensitive URL values without expanding templates or
opening a backend. The saved URL is unchanged.Review URLs and endpoints from untrusted repositories before using your
credentials with them.Private certificates and unsupported options
Private certificates and unsupported options
Private certificate authorities must be trusted by the build’s TLS transport.
There is no generic remote query option;
SSL_CERT_FILE and SSL_CERT_DIR
are not portable overrides.Only the five schemes above are supported. Cloud options must be supported by
Gat’s OpenDAL version (0.58.2), not merely by the provider’s SDK. In cloud URLs,
the host and non-empty path override bucket/container and root query fields.Readiness on first use
Before the first network transfer, Gat checks that it can list the configured storage root. Credentials must allow root listing, plus the read, write, or delete operations you intend to use. This check has a 5-second deadline. If connection setup needs longer, set a positive whole number of seconds:Connection times out or listing is denied
Connection times out or listing is denied
For a timeout, check network access and the configured credential provider.
A timeout does not prove credentials are missing. If listing is denied,
check permission to list the configured bucket or container prefix.After fixing the problem, rerun the command. A successful connection check
does not prove read, write, or delete access; test an actual transfer.
When the check runs
When the check runs
The check includes credential discovery, requests, and retries. Its result
is reused within the command. Unused remotes, cache-only work, configuration
inspection, and
file:// remotes do not run it.Next steps
Transfer files
Push, fetch, or pull objects with your remote.
Remote commands
Choose a default remote and manage existing remotes.

