JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 226
  • Score
    100M100P100Q99583F
  • License MIT

Dropbox client library

Package Exports

  • @buttercup/dropbox-client
  • @buttercup/dropbox-client/source/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@buttercup/dropbox-client) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Dropbox Client

Dropbox client library for Buttercup

Buttercup npm version Build Status

About

Dropbox is an integral part of the Buttercup platform as it's used by a huge amount of users to store all kinds of data - including Buttercup vault files. Having a functional, portable and reliable Dropbox client interface is critical to the platform's stability, and currently the official Dropbox SDK is lacking in terms of quality and stability.

This library is a barebones HTTP client that makes requests directly to Dropbox's HTTP API using a token (handled externally - this library will not be responsible for fetching them). The result is a tiny, portable script that is reliable and simple to understand. It uses cowl to perform requests, which is designed to work similarly across multiple platforms.

Installation

Simply run npm install @buttercup/dropbox-client --save to install.

Usage

Authorisation

You can generate Dropbox authorisation URLs by using generateAuthorisationURL:

const { generateAuthorisationURL } = require("@buttercup/dropbox-client");

const url = generateAuthorisationURL("client-id", "https://redir.example.com");
// open `url`

Client

Use the createClient method to create a client interface:

const { createClient } = require("@buttercup/dropbox-client");

const client = createClient("my-token");

You can then use the client adapter to make requests like for directory contents:

client
    .getDirectoryContents("/Documents")
    .then(contents => {
        // [ {
        //     name: "My directory",
        //     path: "/Documents/My directory",
        //     type: "directory"
        // }, {
        //     name: "results.pdf",
        //     path: "/Documents/results.pdf",
        //     type: "file"
        // } ]
    });

You can also read and write files using getFileContents and putFileContents, respectively. Check out the API documentation for more information.

Fs

An fs-like interface is also available:

const { createClient, createFsInterface } = require("@buttercup/dropbox-client");

const client = createClient("my-token");
const dfs = createFsInterface(client);

dfs.readdir("/photos", (err, items) => {
    // array of file names
});

Read the fs API documentation for more information on the available methods.