Upload, download, and manage files within your sandbox environment
fs
property. You can upload local files, download files from the sandbox, list directories, and manage files with full metadata access.
from beam import Sandbox, Image
sandbox = Sandbox(image=Image(python_version=PythonVersion.Python311))
sb = sandbox.create()
# Upload a local file to the sandbox
sb.fs.upload_file("my_script.py", "/workspace/my_script.py")
# Upload several files
files_to_upload = [
("main.py", "/workspace/main.py"),
("requirements.txt", "/workspace/requirements.txt"),
("data.csv", "/workspace/data/data.csv"),
("config.yaml", "/workspace/config/config.yaml")
]
for local_path, sandbox_path in files_to_upload:
sb.fs.upload_file(local_path, sandbox_path)
print(f"Uploaded {local_path} to {sandbox_path}")
# Download a file from the sandbox
sb.fs.download_file("/workspace/output.txt", "local_output.txt")
# Download to a specific directory
sb.fs.download_file("/workspace/results/data.csv", "downloads/data.csv")
# Download all files in a directory
files = 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 workspace
files = 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 file
file_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}")
Was this page helpful?