joewashear007 / acd-webdav

Amazon Cloud Drive via WebDAV

Home Page:https://gitlab.com/zannalov/acd-webdav

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Purpose

This package provides a WebDAV interface for Amazon Cloud Drive.

Usage

Run as App

$ git clone 'https://gitlab.com/zannalov/acd-webdav.git'
$ cd acd-webdav
$ npm install
$ npm run

Mount from OSX CLI

With the app already running (see above)...

$ ./util/mount/osx.exp

jsDAV Module

var jsDAV_ACD = require( ... );
// new jsDAV_ACD.Auth( ... )
// new jsDAV_ACD.Directory( ... )
// new jsDAV_ACD.File( ... )
// new jsDAV_ACD.Node( ... )
// new jsDAV_ACD.Tree( ... )
// new jsDAV_ACD.FsCache( ... )
// new jsDAV_ACD.Changes( ... )

Why

NodeJS can be easily installed by most users on most computers. This allows us to focus on the goal without getting lost in the weeds of making something cross-system compatible.

WebDAV is natively supported on most operating systems. FUSE is only natively supported in Linux. This should be mountable as a local file-path without requiring file synchronization.

With only slight modification (allowing access to non-localhost interface), this can also be run on a home network to share a cloud drive.

App Configuration

First install the dev dependencies:

~/acd-webdav$ npm install

Then edit the config/default.js file (see the config/example.js file for all options).

Quick reference:

Config module variable Environment variable Default value Description
hostname HOSTNAME 'localhost' Which interface and host name to listen upon
port PORT 8080 What port to open
lockDir LOCK_DIR 'data' Where to put WebDAV lock files
tmpDir TMP_DIR 'tmp' Where to put WebDAV temporary files
httpBasePath HTTP_BASE_PATH '/' Where on the URL to put the WebDAV mount point (by default the root to work with Windows XP)
amazonCredentialsJsonFile N/A .amazon-credentials.json Where to cache the credentials when not running
amazonAuth.client_id N/A ... The client_id required for authorizing against Amazon Cloud Drive
amazonAuth.client_secret N/A N/A An optional client_secret if you don't want access to periodically time out
amazonAuth.scope N/A clouddrive:read_all clouddrive:write What permissions this application needs within Amazon's auth framework
amazonAuth.redirect_uri N/A http://localhost:8080/signin.html Where Amazon should send the login info - should match hostname and port above

Additionally, the config module supports several other interfaces, including using the NODE_CONFIG command online option or environment variable. Read more here.

Debug

If running this as an application (and not as a jsDAV plugin), use the environment variable JSDAV_DEBUG=true to turn on debugging.

References

About

Amazon Cloud Drive via WebDAV

https://gitlab.com/zannalov/acd-webdav

License:GNU General Public License v3.0


Languages

Language:JavaScript 95.8%Language:Shell 3.5%Language:HTML 0.7%