Socket
Socket
Sign inDemoInstall

dropbox-fs

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dropbox-fs

Node FS wrapper for Dropbox API


Version published
Weekly downloads
32
decreased by-33.33%
Maintainers
1
Weekly downloads
 
Created
Source

dropbox-fs Build Status codecov npm version

Node fs wrapper for Dropbox. Wraps the Dropbox javascript module with an async fs-like API so it can be used where a fileSystem API is expected.

Installation

To use this module you'll need a Dropbox Access Token.

$ npm install --save dropbox-fs

Usage

const dfs = require('dropbox-fs')({
    apiKey: 'DROPBOX_API_KEY_HERE'
});

dfs.readdir('/Public', (err, result) => {
    console.log(result); // Array of files and folders
});

Promises are also supported.

const dfs = require('dropbox-fs/promises')({
    apiKey: 'DROPBOX_API_KEY_HERE'
});

You can also pass in a client option if you’re using your own dropbox module instead of the apiKey.

If you'd like some peace of mind then there's a read-only option too:

const dfs = require('dropbox-fs/readonly')({
    apiKey: 'DROPBOX_API_KEY_HERE'
});

// Methods that might change data now return an error without performing any action:
// - mkdir
// - rename
// - rmdir
// - unlink
// - writeFile

dfs.unlink('/Public', (err) => {
    console.log(err); // Message saying `unlink` is not supported in read-only
});

API

This module exposes the following methods:

readdir(path[, options], callback)

Reads a directory and returns a list of files and folders inside.

dfs.readdir('/', (err, result) => {
    console.log(result);
});
  • path: String|Buffer
  • callback: Function

mkdir(path, callback)

Creates a directory.

dfs.mkdir('/Public/Resume', (err, stat) => {
    console.log(stat.name); // Resume
    console.log(stat.isDirectory()); // true
});
  • path: String|Buffer
  • callback: Function

rmdir(path, callback)

Deletes a directory.

dfs.rmdir('/Public/Resume', err => {
    if (!err) {
        console.log('Deleted.');
    }
});
  • path: String|Buffer
  • callback: Function

readFile(path[, options], callback)

Reads a file and returns it’s contents.

// Buffer:
dfs.readFile('/Work/doc.txt', (err, result) => {
    console.log(result.toString('utf8'));
});

// String
dfs.readFile('/Work/doc.txt', {encoding: 'utf8'}, (err, result) => {
    console.log(result);
});
  • path: String|Buffer
  • options: Optional String|Object
    • encoding: String
  • callback: Function

If you pass a string as the options parameter, it will be used as options.encoding. If you don’t provide an encoding, a raw Buffer will be passed to the callback.

writeFile(path, data[, options], callback)

Writes a file to the remote API and returns it’s stat.

const content = fs.readFileSync('./localfile.md');
dfs.writeFile('/Public/doc.md', content, {encoding: 'utf8'}, (err, stat) => {
    console.log(stat.name); // doc.md
});
  • path: String|Buffer
  • data: String|Buffer
  • options: Optional String|Object
    • encoding: String
    • overwrite: Boolean Default: true.
  • callback: Function

rename(fromPath, toPath, callback)

Renames a file (moves it to a new location).

dfs.rename('/Public/doc.md', '/Backups/doc-backup.md', err => {
    if err {
        console.error('Failed!');
    } else {
        console.log('Moved!');
    }
});
  • path: String|Buffer
  • data: String|Buffer
  • callback: Function

stat(path, callback)

Returns the file/folder information.

dfs.stat('/Some/Remote/Folder/', (err, stat) => {
    console.log(stat.isDirectory()); // true
    console.log(stat.name); // Folder
});
  • path: String|Buffer
  • callback: Function
    • err: null|Error
    • stat: Stat Object

unlink(path, callback)

Deletes a file.

dfs.unlink('/Path/To/file.txt', err => {
    if (!err) {
        console.log('Deleted!');
    }
});
  • path: String|Buffer
  • callback: Function

createReadStream(path)

Creates a readable stream.

const stream = fs.createReadStream('/test/test1.txt');
stream.on('data', data => {
    console.log('data', data);
});
stream.on('end', () => {
    console.log('stream finished');
});
  • path: String|Buffer

createWriteStream(path)

Creates a writable stream.

const stream = fs.createWriteStream('/test/test1.txt');

someStream().pipe(stream).on('finish', () => {
    console.log('write stream finished');
});
  • path: String|Buffer

Stat Object

The stat object that is returned from writeFile() and stat() contains two methods in addition to some standard information like name, etc:

  • stat.isDirectory() Returns true if the target is a directory
  • stat.isFile() Returns true if the target is a file

License

This software is released under the MIT License.

Keywords

FAQs

Package last updated on 25 Nov 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc