2.5.0

(feat): Support uploading file-like types for binary upload endpoints (not multipart-form):

  • Buffered types: Buffer, Blob, File, ArrayBuffer, ArrayBufferView, and Uint8Array
  • Stream types: fs.ReadStream, stream.Readable, and ReadableStream

(feat): Users can configure metadata when uploading a file to a binary upload endpoint using the Uploadable.WithMetadata type:

1import { createReadStream } from "fs";
2
3await client.upload({
4 data: createReadStream("path/to/file"),
5 filename: "my-file",
6 contentType: "audio/mpeg",
7 contentLength: 1949,
8});

The filename, contentType, and contentLength properties are optional.

Alternatively, users can use the Uploadable.FromPath type to upload directly from a file path:

1await client.upload({
2 path: "path/to/file",
3 filename: "my-file",
4 contentType: "audio/mpeg",
5 contentLength: 1949,
6});

The metadata is used to set the Content-Length, Content-Type, and Content-Disposition headers. If not provided, the client will attempt to determine them automatically. For example, fs.ReadStream has a path property which the SDK uses to retrieve the file size from the filesystem without loading it into memory:

1import { createReadStream } from "fs";
2
3await client.upload(createReadStream("path/to/file"));