Remote inputs
Pass an HTTP(S) URL asdata to avoid loading a large file into the SDK
process. The URL must return the object with an unauthenticated GET; s3://
URIs are not accepted. Downloads use only the URL’s authorization; Sutro never
signs caller-selected objects with service credentials. Private S3/R2 objects
therefore require a caller-authorized presigned GET URL. Public objects may use
an unsigned URL.
Destinations must resolve only to public IPv4/IPv6 addresses. HTTP uses port 80
and HTTPS uses port 443; other ports, URL userinfo, and redirects to non-public
destinations are rejected. URL fragments are ignored. HTTPS cannot redirect to HTTP. At most
five redirects are followed, with no automatic retry or resume. Unicode hostnames
use IDNA; spaces and Unicode in paths/queries are escaped without changing
existing percent escapes in signed URLs.
Contract
- Formats: CSV or Parquet; gzip, bzip2, XZ, ZIP (stored or deflate members), and optional zstd wrappers are supported within resource limits
- Defaults: 64 GiB downloaded, 256 GiB expanded/decoded, 1 GiB decoded per streaming Parquet batch, and 100 million rows (tenant quotas still apply)
- Timeouts: 10 seconds to connect, 60 seconds without read progress, and 1 hour for the full transfer
- HTTP response encoding may be identity, gzip, or deflate; use an object-file wrapper for other compression formats
- Oversized, inaccessible, or expired inputs fail the job with an actionable error; a failed transfer must be resubmitted with a fresh URL
- Published Functions: columns must match Function inputs; omit
column - Direct model IDs: set
columnto the input column - Optional
id_column: preserved in every result format - Use
job_priority=1andstay_attached=False
.bz2/.xz wrapper.
Sutro performs one full-object download and does not resume or retry a failed
HTTP request. It can try another validated DNS address if connection setup fails. Use an immutable object and a URL lifetime that covers queueing
plus download startup.