upload-folder
One-shot ingest of a local folder into the workspace's graph. Walks the folder recursively, extracts text/metadata from every supported file, and creates the corresponding file and folder nodes.
For a continuous version that keeps syncing, use monitor. For ingestion that also propagates Windows / Active Directory ACLs, use upload-folder-with-permissions.
Usage
curiosity-cli upload-folder \
--server https://my-workspace.example.com/ \
--token $CURIOSITY_TOKEN \
--path /mnt/shares/docs \
--source "Shared Drive" \
--fetch-server-state false
Options
| Flag | Alias | Default | Description |
|---|---|---|---|
--server |
-s |
- | Workspace URL. |
--token |
-t |
- | Library Token. |
--path |
-p |
- | Folder to upload. |
--source |
folder name | Source label attached to every uploaded file entry. Defaults to the leaf directory name. | |
--fetch-server-state |
- | Required. When true, fetch the list of already-uploaded files first so that files deleted locally also get removed from the workspace. Requires --sync-file-url. |
|
--bandwidth |
unlimited | Cap upload rate in Mbps. | |
--upload-to |
Public |
Public, Group, UserPublic, UserPrivate. See Common Options. |
|
--target-uid |
- | UID of the Group/User when --upload-to is not Public. |
|
--extensions |
- | Semicolon-separated list of extensions to include, e.g. doc;docx;pdf. |
|
--root-path |
- | Local path prefix to strip before constructing the workspace path. | |
--root-folder-name |
- | Name of the root folder to create in the workspace. Requires --root-path. |
|
--restore-access-time |
false |
Restore the file's last-access timestamp after reading. Useful on hot+cold-storage shares. | |
--sync-file-url |
false |
Store the file URL alongside each node so it can be opened directly from the workspace. | |
--in-place |
false |
Only sync the file URL — don't copy bytes. Requires --sync-file-url and the server having direct access to the files. |
|
--timeout |
90 |
Per-request timeout in seconds. |
Windows-only impersonation
When running on Windows the command also accepts --username, --password, and --domain to impersonate a different account for folder/file reads — useful for shares that the CLI's own account cannot read.
Filtering
# Only PDFs and Word documents under 1 GB/s
curiosity-cli upload-folder -s $URL -t $TOKEN -p /mnt/docs \
--extensions "pdf;doc;docx" \
--bandwidth 1000 \
--fetch-server-state false
Layout in the workspace
Given --path /mnt/docs/projects/atlas, the workspace will mirror that path:
workspace/
└── atlas/
└── ...
Use --root-path and --root-folder-name to rewrite the prefix:
curiosity-cli upload-folder -s $URL -t $TOKEN \
--path /mnt/docs/projects/atlas \
--root-path /mnt/docs \
--root-folder-name "Shared Drive"
Produces:
workspace/
└── Shared Drive/
└── projects/
└── atlas/
└── ...
See also
inspect— dry-run report of supported/unsupported files.monitor— keep the folder in sync continuously.upload-folder-with-permissions— preserve Active Directory ACLs.- Data Connector — for programmatic, idempotent ingest of non-file sources.
- Access control — to understand the ACL options on uploaded content.