123456789101112import { Sandbox } from "@opencomputer/sdk"; const sandbox = await Sandbox.create(); // Generate a download URL (default: 1 hour expiry) const downloadUrl = await sandbox.downloadUrl("/app/output.zip"); // Generate an upload URL const uploadUrl = await sandbox.uploadUrl("/app/input.csv"); // Custom expiry (in seconds) const shortUrl = await sandbox.downloadUrl("/app/output.zip", { expiresIn: 300 }); // 5 minutes
12345const url = await sandbox.downloadUrl("/app/results.csv"); // Fetch from browser or server — no API key needed const resp = await fetch(url); const data = await resp.arrayBuffer();
1234567const url = await sandbox.uploadUrl("/app/data.csv"); // Upload from browser or server — no API key needed await fetch(url, { method: "PUT", body: fileContent, // string, Uint8Array, Blob, etc. });
123456789// Upload a 100MB file via signed URL const data = new Uint8Array(100 * 1024 * 1024); const uploadUrl = await sandbox.uploadUrl("/data/model.bin"); await fetch(uploadUrl, { method: "PUT", body: data }); // Download it back const downloadUrl = await sandbox.downloadUrl("/data/model.bin"); const resp = await fetch(downloadUrl); const downloaded = new Uint8Array(await resp.arrayBuffer());
403.403.