Storage Paths
Storage paths define directory templates that control where Paperless-ngx stores archived documents on disk. They support the full CRUD lifecycle and permission management.
Models
StoragePath
| Field | Description |
|---|---|
id |
Primary key |
slug |
URL-safe identifier |
name |
Display name |
path |
Directory path template |
document_count |
Number of documents using this path |
StoragePathDraft
| Field | Description |
|---|---|
name |
Display name (required on save) |
path |
Path template, e.g. "{created_year}/{correspondent}" (required on save) |
owner |
Owner user id |
Fetch one
sp = await paperless.storage_paths(2)
print(sp.name) # "By year"
print(sp.path) # "{created_year}/{correspondent}/{title}"
Iterate
async for sp in paperless.storage_paths:
print(sp.id, sp.name, sp.path)
# Build a name → path mapping
path_map = {sp.name: sp.path async for sp in paperless.storage_paths.reduce()}
Create
draft = paperless.storage_paths.draft()
draft.name = "By year and type"
draft.path = "{created_year}/{document_type}/{title}"
pk = await paperless.storage_paths.save(draft)
print(pk) # primary key of the new storage path
Update
sp = await paperless.storage_paths(2)
sp.path = "{created_year}/{correspondent}/{title}"
changed = await paperless.storage_paths.update(sp)
Delete
Permissions
paperless.storage_paths.request_permissions = True
sp = await paperless.storage_paths(2)
print(sp.owner) # owner user id
print(sp.permissions) # PermissionTable
paperless.storage_paths.request_permissions = False
See Permissions for details.