How qinjunhaocn/openlist-worker works
OpenList-Worker is a serverless, multi-storage file listing and management service. A user request enters the Worker, is routed to filesystem operations, resolves a virtual path and configured storage, then uses a provider driver to list or transfer files. The README also documents sharing, search, background tasks, authentication, and WebDAV/S3/MCP interfaces. Storage configuration and application data use a pluggable persistence layer. The workflow follows the documented product structure; some feature-to-operation wiring is not shown in the sampled source.
Main entry points: router.ts API router · index.ts HTTP app · storage.ts Storage operations · drivers Storage drivers
Components 19
Request runtime
- Worker entry
src/backend/worker.ts - HTTP app
src/backend/index.ts - API router
src/backend/server/router.ts
File operations
- File API
src/backend/server/fs.ts - Storage operations
src/backend/internal/op/storage.ts - Sharing
src/backend/server/share.ts - File search
src/backend/internal/op/search.ts
Storage providers
- Driver interface
src/backend/internal/driver/base.ts - Storage drivers
src/backend/drivers
Product services
- Async tasks
src/backend/server/task.ts - WebDAV interface
src/backend/server/webdav.ts - S3 interface
src/backend/server/s3.ts - MCP interface
src/backend/server/mcp.ts - Authentication
src/backend/server/auth.ts
Persistence
- Data model
src/backend/internal/model/db.ts - Store selection
src/backend/internal/model/store/backend.ts - Database adapters
src/backend/internal/model/store/driver
Other components
- User
- External stores
Connections 19
- User → Worker entry: sends request
- Worker entry → HTTP app: serves
- HTTP app → API router: mounts API
- API router → File API: routes file requests
- File API → Storage operations: performs file operations
- Storage operations → Data model: resolves storage path
- Storage operations → Storage drivers: dispatches provider operations
- Storage drivers → Driver interface: implement interface
- Storage drivers → External stores: reads and writes files
- API router → Sharing: routes sharing requests
- API router → File search: exposes search
- API router → Async tasks: routes task requests
- HTTP app → WebDAV interface: mounts interface
- HTTP app → S3 interface: mounts interface
- API router → MCP interface: exposes MCP
- API router → Authentication: routes authentication
- HTTP app → Data model: sets persistence context
- Data model → Store selection: loads and saves data
- Store selection → Database adapters: selects adapter