Client Helpers

Hooks and helper flows for uploads and downloads.

Hooks

const {
  useFiles,
  useFile,
  useCreateUpload,
  useUploadStatus,
  useCompleteUpload,
  useAbortUpload,
  useUpdateFile,
  useDeleteFile,
} = uploadClient;

Helpers

The helper API wraps the common end-to-end flows. It is exposed as a reactive store hook in supported frameworks.

const { useUploadHelpers } = uploadClient;
const helpers = useUploadHelpers();

await helpers.createUploadAndTransfer(file, {
  provider: "r2-binding",
  fileKey: `teams/${teamId}/logo`,
  onProgress: ({ bytesUploaded, totalBytes }) => {
    console.log(bytesUploaded, totalBytes);
  },
});

createUploadAndTransfer

  • Creates an upload.
  • Chooses direct single, direct multipart, or server-streamed (proxy) uploads based on the server response.
  • Tracks progress for multipart and server-streamed (proxy) uploads.

downloadFile

const response = await helpers.downloadFile(`teams/${teamId}/logo`, {
  provider: "r2-binding",
  method: "signed-url", // or "content"
});
const blob = await response.blob();

Download method selection is explicit:

  • method: "signed-url" calls GET /files/by-key/download-url?provider=...&key=....
  • method: "content" calls GET /files/by-key/content?provider=...&key=....

No automatic fallback happens between methods.