@graffiti-garden/byo-storage

1.0.11 • Public • Published

Bring-Your-Own Storage

Usage

Install using either npm:

npm install @graffiti-garden/byo-storage

or in the browser, use jsdelivr or another CDN:

<script type="module">
    import BYOStorage from 'https://cdn.jsdelivr.net/npm/@graffiti-garden/byo-storage';
</script>

Then go to the Dropbox developer console and create an app. Select "Full Dropbox" rather than "App Folder" - while this library only uses one folder, full access is necessary to enable link sharing.

In "Permissions" enable "files.content.write", "files.content.read" and "sharing.write". In "Settings" under "Development Users" select "Enable Additional Users" to allow other users to user the app. In "Settings" under "OAuth 2" add your app's domain to the "OAuth 2: Redirect URIs" section, as well as any local development URIs you may use.

Finally, copy the App key and use it to create a new BYOStorage instance:

const byos = new BYOStorage({ clientId: 'YOUR_APP_KEY' });

Testing

Go to the Dropbox developer console and create a new, if you don't already have one. Then generate an access token and put it in the .env file:

ACCESS_TOKEN=sl.rAnDOmRaWRXDkdjfk...

Then run the tests:

npm test

TODO

  • [x] Have directories specific to a particular public key, and sign the shared links to those directories to prove that the data is from the correct source
  • [x] Make posts immediately available without waiting for roundtrip
  • [ ] Add support for other storage providers
  • [ ] Bundle posts together for faster loading
  • [ ] Frequency based watching. When a lot of channels are being watched, poll active channels more frequently than inactive ones
  • [ ] When multiple channels are being watched, batch the requests to the same channel together

Readme

Keywords

none

Package Sidebar

Install

npm i @graffiti-garden/byo-storage

Weekly Downloads

1

Version

1.0.11

License

GPL-3.0-or-later

Unpacked Size

576 kB

Total Files

10

Last publish

Collaborators

  • graffiti-garden