Upload, download, and manage files within your sandbox environment
Each sandbox has a built-in file system API available at sb.fs. You can upload local files, download files from the sandbox, list directories, and manage files with full metadata access.
from beam import Sandbox, Image, PythonVersionsandbox = Sandbox(image=Image(python_version=PythonVersion.Python311))sb = sandbox.create()# Upload a local file to the sandboxsb.fs.upload_file("my_script.py", "/workspace/my_script.py")
# Download a file from the sandboxsb.fs.download_file("/workspace/output.txt", "local_output.txt")# Download to a specific directorysb.fs.download_file("/workspace/results/data.csv", "downloads/data.csv")
# Download all files in a directoryfiles = sb.fs.list_files("/workspace/results")for file in files: if not file.is_dir: local_path = f"downloads/{file.name}" sb.fs.download_file(f"/workspace/results/{file.name}", local_path) print(f"Downloaded {file.name}")
# List files in workspacefiles = sb.fs.list_files("/workspace")for file in files: if file.is_dir: print(f"{file.name}/") else: print(f"{file.name} ({file.size} bytes)")
# Get detailed information about a filefile_info = sb.fs.stat_file("/workspace/my_script.py")print(f"Name: {file_info.name}")print(f"Size: {file_info.size} bytes")print(f"Is Directory: {file_info.is_dir}")print(f"Permissions: {oct(file_info.permissions)}")print(f"Owner: {file_info.owner}")print(f"Group: {file_info.group}")print(f"Modified: {file_info.mod_time}")