webdav-client is a Node.js library offering a comprehensive, callback-based API for interacting with WebDAV servers. Currently stable at version 1.4.3, this package provides a suite of methods for common file and directory operations, including `get`, `put`, `readdir`, `mkdir`, `delete`, `move`, `copy`, alongside robust capabilities for property management (setting, removing, retrieving properties) and locking mechanisms. It also supports custom HTTP requests and stream-based data transfers for efficient handling of large files. The library is specifically designed for server-side Node.js environments and explicitly states it is not yet suitable for browser usage. Its primary differentiating factors include its direct, callback-centric programming model, which allows for fine-grained control over WebDAV protocol interactions, and its focus on Node.js compatibility. While a specific release cadence is not documented, the versioning suggests a mature and stable codebase for integrating WebDAV functionalities into Node.js applications.
npm install webdav-clientVerified import paths — ran on the pinned version, not inferred.
Demonstrates how to initialize the WebDAV client with optional authentication and fetch the content of a specified file using its callback-based API.
For frontend applications, use a WebDAV client library specifically built and tested for browser compatibility.
Wrap callback-based methods in Promises using `util.promisify` from Node.js's built-in `util` module to enable `async/await` syntax, or choose an alternative client that natively supports Promises.
Implement custom retry logic around API calls (e.g., using libraries like `p-retry` for Promises or a custom loop for callbacks) to improve resilience against intermittent connection issues.
Verify that the WebDAV server is operational and reachable from the client's host. Ensure the `url` provided in the `Connection` constructor is correct.
Double-check the path provided to WebDAV methods (e.g., `get`, `readdir`, `put`) for accuracy against the server's directory structure.
Provide valid `username` and `password` in the `ConnectionOptions` or ensure a custom `authenticator` is correctly configured.
No dependency data recorded yet.