Skip to main content
Use write() for in-memory strings and bytes. Use upload_file() for local files, upload_dir() for directories, and upload() when you want the SDK to dispatch by source type. upload() accepts local file paths, directories, file-like objects, and stdin style streams. Directory-specific options such as conflict and ignore_patterns belong on upload_dir(); resumable options such as resumable, checksum, and spool_to_disk belong on upload_file().

Write many small files

Upload one file

Upload destinations must be valid machine paths. Do not upload into /workspace/.nullspace, which is reserved for runtime metadata and resumable transfer state.

Upload a directory

Directory uploads honor .nullspaceignore from the source root and append any explicit ignore_patterns after it. Conflict policies control how existing destination files are handled; use "merge" for normal sync-style uploads and choose stricter policies when automation must fail on pre-existing paths.

Resumable upload and progress

Signed upload URL

Use a signed upload URL when a browser or another service should upload bytes directly. Use machine.upload_url(path) as a convenience wrapper around machine.files.upload_url(path).url. The signed upload grant includes the URL plus request metadata such as the HTTP method and required headers. Forward those fields to the client performing the direct upload.