Take it easy uploading files to SharePoint. A powerful Node.js utility to upload large files to SharePoint using chunked uploads, with built-in support for authentication and progress tracking.
- Upload files to SharePoint with ease.
- Support for chunked uploads to handle large files.
- Overwrite existing files if necessary.
- Progress logging with upload percentage.
- Authentication using
node-sp-auth
.
To install sharepoint-upload
, use npm or yarn:
npm install sharepoint-upload
or with yarn:
yarn add sharepoint-upload
First, you need to instantiate the SharepointUpload
class with the SharePoint URL and your credentials. Then you can upload files with the upload
method.
const SharepointUpload = require('sharepoint-upload');
const uploader = new SharepointUpload({
url: 'https://your-sharepoint-site.com/Documents/MyFolder',
credentials: {
username: 'your-username',
password: 'your-password'
},
options: {
verbose: true, // Enable progress logging
logger: console // Use console for logging
}
});
(async () => {
try {
await uploader.upload('path/to/file.txt');
console.log('File uploaded successfully!');
} catch (error) {
console.error('Error during upload:', error);
}
})();
This utility splits large files into chunks (default 48MB) and uploads them in parts, ensuring reliable and efficient file transfer.
The SharepointUpload
class accepts the following options:
- url: The SharePoint folder URL where the file will be uploaded.
-
credentials: The credentials required for authentication, including:
-
username
: Your SharePoint username. -
password
: Your SharePoint password.
-
-
options: (Optional) Additional options for logging and verbosity.
-
verbose
: If set totrue
, progress logs will be displayed during the upload. -
logger
: Specify a custom logger. Defaults toconsole
.
-
const uploader = new SharepointUpload({
url: 'https://your-sharepoint-site.com/Documents/MyFolder',
credentials: {
username: 'your-username',
password: 'your-password'
},
options: {
verbose: true, // Enable progress logging
logger: customLoggerInstance // Use a custom logger instead of console
}
});
Uploads a file to SharePoint.
-
filePath:
string
– The path to the file to be uploaded. -
options:
object
(optional):-
fileName
:string
– Custom name for the file in SharePoint. Defaults to the original filename.
-
await uploader.upload('path/to/file.txt', { fileName: 'new-file-name.txt' });
This method will split the file into chunks (if large enough) and upload it to the specified folder on SharePoint. If the file already exists, it will be overwritten.
This project is licensed under the MIT License - see the LICENSE file for details.