Beam
← Releases
Studio 1.0.23

Move files in and out of Box

Box is now a transfer source and destination: copy Box files and folders anywhere Beam reaches, or write into Box folders, from Studio or the TypeScript and Python SDKs, with your Box tokens kept on your side.

StudioSDKDocs

Box in every Studio workflow

Each Studio connects to Box through a Box app of its own, registered once by the organization that owns it. Members connect their Box accounts under Credentials, then pick a Box file or folder as a source, or a Box folder as a destination, in any workflow. An AI agent can do the same through Studio's MCP server. Box tokens stay in Studio: workers get a download link, or a token that can upload to one file only.

Large files, committed with their SHA-1

Workers upload files of 20 MiB or more straight into Box upload sessions, and Box commits each one only when given the SHA-1 of the whole file. A Box file, or an S3 or R2 object stored with a SHA-1 checksum, already has one, and only that value is passed on. For any other source, independent operators read the source to compute it; Beam's servers never read the file.

How it works

Box is now a transfer source and a transfer destination. Box addresses items by ID, so a source is a Box file or folder and a destination is a Box folder. Your Box access token stays with you, in your Studio or in your SDK process, and workers never receive it.

Reading from Box
A worker gets a short-lived download link for one version of one file. Every file is read at the version that was current when the transfer was prepared, and a folder copies every file in it, subfolders included.
Writing into Box
Workers upload straight into Box, each with a token that can only upload to one file, and BeamCore commits the file with a separate token. Every token minted for a file is revoked once the file is committed or abandoned. A file that already has the name in the folder gets a new version; otherwise Beam creates a placeholder first and deletes it if the transfer fails.
Large files and their SHA-1
Box commits a file of 20 MiB or more only when given the SHA-1 of the whole file, a 40-character fingerprint. A Box source always has one, and an S3 or R2 object has one when it was stored with a SHA-1 checksum: your SDK or Studio reads that value from the source's metadata and passes on only the value. For any other source, independent operators read the source again to compute it before the commit. Beam's servers never read the file.

Get started

  • In Studio, update to v1.0.23 and update the Beam Transfer action to 1.8.0 on the Registry page. The organization that owns the Studio registers a Box app once, under Settings, Access, Box app.
  • Connect a Box account under Credentials, then choose it in any source or destination endpoint to pick a Box file or folder.
  • An AI agent can list a Box folder and start a Box transfer through Studio's MCP server, using the connections already in Studio.
  • In code, update to @beam-network/sdk 0.11.0 or beam-network-sdk 0.15.0, and use the Box source and destination configs with a Box access token from your own Box app.

Costs and limits

  • A Box transfer is priced like any other transfer. Studio starts one transfer per file, so a folder of many small files pays the per-transfer price for each file.
  • Computing a SHA-1 reads the source two or three more times, which your storage provider may bill as egress, and works for files up to about 13.8 GiB. Storing the SHA-1 with the object avoids both.
  • Box's free plan caps files at 250 MB, and Box allows about 240 upload requests per minute per user. Beam runs at most two upload sessions per Box user at a time; further transfers wait rather than fail.

What it does not do

  • A Box destination is its transfer's only destination: a step that writes to Box writes nowhere else.
  • A Hugging Face or plain-HTTP source of 20 MiB or more has no SHA-1 Beam can use, and is refused before anything is written.
  • In Studio, a storage source other than Box names one object; copy several objects with one source per object.
  • The Go and Rust SDKs and the CLI do not support Box. The SDKs never refresh your Box token; that stays with your own Box app.
Move files in and out of Box — Beam