Skip to content

The Long Access client program, used with python through the command line

License

Notifications You must be signed in to change notification settings

longaccess/longaccess-client

Repository files navigation

The Longaccess client

This is the prototype client program for interacting with the Longaccess service. It is usable via the command line on systems that have Python installed but also requires a registered account. If you are unfamiliar with other aspects of the Longaccess service a good place to start is "What is Longaccess?"

Installation

We have binary packages for certain platforms, like MacOS X, Windows 8 64-bit, Linux and FreeBSD. For more information see the Longaccess downloads page. For other platforms or purposes you can download or clone the source repository, create a virtualenv if needed, and install the client via pip. E.g.:

pip install https://github.com/longaccess/longaccess-client/tarball/master

Note that currently, certain third-party libraries are required in modified form. These special dependencies are described in requirements.txt and can be automatically installed if the following command is given:

pip install -r requirements.txt

Dependencies

The prebuilt binary packages are self-contained, i.e. they do not have any hard external dependencies. There is however a soft dependency on an external tool to securely delete files from the filesystem, see below for more information. When installing from source most dependencies are automatically installable via pip. On some platforms the installation might require manually installing development packages, e.g. on [Fedora Linux][] you might need to install the python2-devel package. Additional packages, like thrift and twisted are necessary for the RPC server (used to communicate with GUI frontends). Last, install the python-zipstream package to enable on-the-fly operations, requiring less temporary space on disk.

Usage

After installation the program is invoked as lacli. Run it with no arguments to see a synopsis of supported usages. In short, there are four basic commands:

  • lacli login set up credentials to use with other commands
  • lacli archive helps you manage archives
  • lacli certificate helps you manage certificates
  • lacli capsules let's you view your available capsules
  • lacli server runs the RPC server. You normally do not need this.

Alternatively one may run the program interactively by running lacli -i.

The lacli command supports certain global options which you can see in the aforementioned synopsis. The only required argument however is the authentication parameters which we discuss in the next section.

Authentication

In order to use the service you must first have a username and password for the service. You can provide them to the program in two ways:

  1. as global arguments, e.g. lacli -u user -p pass archive list .... If a password is not provided you will be prompted for one.
  2. as entries in your .netrc file. This way you will not have to provide them everytime (but you should keep your .netrc safe).
  3. by using the login command. If authentication is succesfull you will be prompted to save the credentials in .netrc as above for future use. If interactive the credentials will be used for subsequent commands.

Netrc

The correct machine to add to .netrc for the service in production at Longaccess is www.longaccess.com. For example you need this entry:

machine www.longaccess.com login user@domain.com password somep4ss

Example usage

An example scenario:

$ lacli login your@email.com
Password:
authentication succesfull as your@email.com
Save credentials? y
$ lacli archive list
No available archives.
$ lacli archive create /home/kouk/toread -t documents
Encrypting..
archive prepared
$ lacli archive list
001  36MiB             documents      LOCAL           
$ lacli archive upload 1
/home/kouk/.longaccess/data/2013-10-18-documents.zip.crypt : |###################| ETA:  0:00:00 349.66 MB/s
Upload finished, waiting for verification
Press Ctrl-C to check manually later
status: completed
Certificate 68-H1BK saved.
Use lacli certificate list to see your certificates, or lacli certificate --help for more options
done.
$ lacli archive list
001  36MiB             documents   COMPLETE    68-H1BK
$ lacli certificate list
   68-H1BK  36MiB documents
$ lacli certificate print 68-H1BK
Created files:
longaccess-68-H1BK.html
$

Secure removal

When removing archives and certificates from the disk the program supports secure deletion through an external program. In case a suitable removal program cannot be found* the client will complain and give further instructions. Currently we automatically support the following tools, if they are available on the system path:

* or one has not been provided via the optional argument to the delete command.