Skip to content
scroll to zoom · drag to pan

PresignUploadUrlOptions

type PresignUploadUrlOptions = {
bytes: number;
clientOriginalBytes?: number;
fileName: string;
mime: string;
presets?: RequestablePreset[];
sha256: string;
video?: UploadVideoOptions;
};

Defined in: packages/sdk/src/index.ts:512

Input shape accepted by aq.assets.presignUploadUrl(...).

bytes: number;

Defined in: packages/sdk/src/index.ts:518

Byte length of the upload payload.


optional clientOriginalBytes?: number;

Defined in: packages/sdk/src/index.ts:534

Pre-compression size of the source (useful when the browser ran compressorjs / heic2any before computing bytes). Recorded server-side, so the savings show up in the admin usage dashboards.


fileName: string;

Defined in: packages/sdk/src/index.ts:520

Suggested file name; surfaces in admin dashboards + extension fallback.


mime: string;

Defined in: packages/sdk/src/index.ts:516

MIME type of the bytes (e.g. image/jpeg, video/mp4).


optional presets?: RequestablePreset[];

Defined in: packages/sdk/src/index.ts:528

Variant ladder to generate after /assets/process. Defaults to ["original"] server-side when omitted — same contract as aq.upload.

RequestablePreset, not VariantPreset: hls and mp3 are things a variant can BE, never things you can ask for, and asking is a 400.


sha256: string;

Defined in: packages/sdk/src/index.ts:514

Full sha256 (64 hex) of the bytes that will be PUT to storage.


optional video?: UploadVideoOptions;

Defined in: packages/sdk/src/index.ts:536

VIDEO-only delivery knobs forwarded into /assets/process. See UploadVideoOptions.