What changed
Fastly introduced Direct Fetch for Object Storage in September 2026. Instead of downloading a source object to the client and uploading it again, a client sends a normal `PutObject` or `UploadPart` request with an empty payload and supplies the remote object URL in the `fastly-object-storage-source-url` header. Fastly's Object Storage service then fetches the source directly and writes it to the destination. Range requests are supported, allowing multipart uploads to be assembled from sections of a remote object. Because the source can be a pre-signed S3-compatible URL, private data can be moved without giving Fastly a long-lived credential for the source account.
Why it matters
Large storage migrations are often constrained less by API syntax than by where the bytes travel. Client-mediated copies consume application bandwidth, double-hop through migration workers and create more moving parts for retry and capacity planning. Direct Fetch moves the bulk data path to Fastly's infrastructure while keeping the initiating request S3-compatible. That can simplify one-time migrations, background copy jobs and selective object movement from existing S3-compatible providers.
The client initiates the copy but does not carry the object bytes
A Direct Fetch request uses `PutObject` or `UploadPart` with the remote URL in a Fastly-specific header. Object Storage retrieves the data itself and returns the normal operation response after writing the destination.
Multipart and range migration are supported
When a request includes a Range header, Fastly asks the source for the same byte range. That lets migration tooling split large objects into parts and use multipart upload semantics without first materializing the complete object locally.
Pre-signed URLs keep source credentials short-lived
A source URL can be pre-signed by an S3-compatible provider. This allows Fastly to fetch a private object without receiving the customer's long-lived access key, although the URL itself remains a sensitive capability until it expires.