https://github.com/koltyakov/sp-download
SharePoint files download client in Node.js
https://github.com/koltyakov/sp-download
cli client download javascript nodejs sharepoint typescript
Last synced: about 1 year ago
JSON representation
SharePoint files download client in Node.js
- Host: GitHub
- URL: https://github.com/koltyakov/sp-download
- Owner: koltyakov
- License: mit
- Created: 2017-08-19T12:34:51.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-02-03T23:11:02.000Z (over 3 years ago)
- Last Synced: 2025-03-25T17:22:59.572Z (about 1 year ago)
- Topics: cli, client, download, javascript, nodejs, sharepoint, typescript
- Language: TypeScript
- Homepage:
- Size: 417 KB
- Stars: 15
- Watchers: 4
- Forks: 3
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# sp-download - Easy to use files download client library and CLI for SharePoint in Node.js
[](https://nodei.co/npm/sp-download/)
[](https://badge.fury.io/js/sp-download)
[](https://www.npmjs.com/package/sp-download)

[](https://gitter.im/sharepoint-node/Lobby)
`sp-download` is a SharePoint files download library and CLI in Node.js.
## Supported SharePoint versions
- SharePoint Online
- SharePoint 2013/2016/2019
## Features
- CLI && A library scenarios
- Support robust authentication scenarios
- Streaming download
- download files of any sizes
- no memory consumption growth
## Get started
### Command line (CLI)
#### Prerequesites
- Node.js
#### Install as CLI
```bash
npm install sp-download -g
```
### Command line (CLI) usage
```bash
sp-download --url="https://contoso.sharepoint.com/sites/site/lib/folder/file.ext" --out="./download"
```
or
```bash
sp-download --url="https://contoso.sharepoint.com/sites/site/lib/folder/file.ext" --out="./download/filename.ext"
```
#### Options
Print help:
```bash
sp-download -h
```
| Shortcut | Option | Description |
| --- | --- | --- |
| -V | --version | output the version number |
| -u | --url [value] | full path to the file in SharePoint, required |
| -o | --out [value] | local directory or path to file where downloaded file should be saved, optional, default is `./` |
| -c | --conf [value] | Path to private configuration file |
| -s | --site [value] | SharePoint SPWeb url, optional, default is requested based on `url` |
| -d | --ondemand | On-Demand auth request, optional |
| -l | --logLevel [value] | Log level: Debug = 5, Verbose = 4, Info = 3 (default), Warning = 2, Error = 1, Off = 0 |
| -h | --help | output usage information |
### In Node.js applications
#### Install as dependency
```bash
npm install sp-download --save
```
or
```bash
yarn add sp-download
```
#### Minimal setup (TypeScript)
```typescript
import { Download, IAuthOptions } from 'sp-download';
const authContext: IAuthOptions = {
// ... node-sp-auth options
};
const download = new Download(authContext);
let filePathToDownload: string = 'https://contoso.sharepoint.com/sites/site/lib/folder/file.ext';
let saveToPath: string = './download';
download.downloadFile(filePathToDownload, saveToPath)
.then((savedToPath) => {
console.log(`${argv.url} has been downloaded to ${savedToPath}`);
})
.catch((error) => {
console.log(error);
});
```
#### Minimal setup (JavaScript)
```javascript
const Download = require('sp-download').Download;
const authContext = {
// ... node-sp-auth options
};
const download = new Download(authContext);
let filePathToDownload = 'https://contoso.sharepoint.com/sites/site/lib/folder/file.ext';
let saveToPath = './download';
download.downloadFile(filePathToDownload, saveToPath)
.then((savedToPath) => {
console.log(`${argv.url} has been downloaded to ${savedToPath}`);
})
.catch((error) => {
console.log(error);
});
```
## Authentication settings
The library provides a wizard-like approach for building and managing config files for [`node-sp-auth`](https://github.com/s-KaiNet/node-sp-auth) (Node.js to SharePoint unattended HTTP authentication).
- SharePoint On-Premise (2013, 2016):
- User credentials (NTLM)
- Form-based authentication (FBA)
- Add-In Only permissions
- ADFS user credentials
- SharePoint Online:
- User credentials (SAML)
- Add-In Only permissions
- ADFS user credentials
For more information please check node-sp-auth [credential options](https://github.com/s-KaiNet/node-sp-auth#params) and [wiki pages](https://github.com/s-KaiNet/node-sp-auth/wiki).