sp-download

SharePoint files download client in Node.js

sp-download is a SharePoint files download library and CLI in Node.js.

Supported SharePoint versions

  • SharePoint Online

  • SharePoint On-Prem (2019, 2016, 2013)

Features

  • CLI && A library scenarious

  • Support robust authentication scenarious

  • Streaming download

    • download files of any sizes

    • no memory consumption growth

Get started

Command line (CLI)

Prerequesites

  • Node.js

Install as CLI

npm install sp-download -g

Command line (CLI) usage

sp-download --url="https://contoso.sharepoint.com/sites/site/lib/folder/file.ext" --out="./download"

or

sp-download --url="https://contoso.sharepoint.com/sites/site/lib/folder/file.ext" --out="./download/filename.ext"

Options

Print help:

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

npm install sp-download

Minimal setup (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)

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 wizard-like approach for building and managing config files for 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 and wiki pages.

Last updated