Command line tool for Amazon Cloud Drive.
Binary releases are created upon reaching a milestone and made available on
Bintray. Download the version and
architecture of your chosing, optionally verifying the signature and MD5 sums.
Unzip the archive and you're ready to go. The acdcli
executable (or
acdcli.exe
on Windows) is all you need to run, no external dependencies.
Download the acdcli_VERSION_SHA256SUMS.sig
and acdcli_VERSION_SHA256SUMS
files from Bintray (the following
examples assume VERSION
to be 0.1.0
). The public key for the signature is
available as ASCII-armored .asc
file and as
binary .gpg
file.
You can either import the .asc
file into your keyring and run:
% gpg --verify acdcli_0.1.0_SHA256SUMS.sig acdcli_0.1.0_SHA256SUMS
Or you can use the .gpg
file directly as keyring and skip importing the key
into your keyring:
% gpg --no-default-keyring --keyring 1FCE89F3.gpg --verify acdcli_0.1.0_SHA256SUMS.sig acdcli_0.1.0_SHA256SUMS
In both cases the result should be similar to the following:
gpg: Signature made Tue May 19 23:51:05 2015 CEST using RSA key ID 1FCE89F3
gpg: Good signature from "Serge Gebhardt <[email protected]>"
# clone this repo
% git clone https://github.com/sgeb/acdcli.git
# get the right versions of dependencies (through gpm)
# optional, is part of the two next commands
% make updatedeps
# compile binaries for your current platform
% ACD_API_CLIENTID="your clientID" ACD_API_SECRET="your secret" make dev
# compile binaries for all supported platforms
% ACD_API_CLIENTID="your clientID" ACD_API_SECRET="your secret" make bin
The binaries will be released with API keys embedded and the tool ready to be used. But when building from source you will need to register an API client for the Amazon Cloud Drive to get a clientID and secret. You can do so here.
Note that invoking the line as written above will store your clientID and secret in your shell's history. It's safer to use a commandline-accessible password store (such as pass) and invoke the line as follows:
% ACD_API_CLIENTID=$(pass ApiKeys/acdcli/clientid) ACD_API_SECRET=$(pass ApiKeys/acdcli/secret) make bin
Make sure to setup pass
and adjust the path to the password file.
Still work in progress. Focusing on read-only operations at first. See next section for planned features.
Help:
% acdcli help
usage: acdcli [--version] [--help] <command> [<args>]
Available commands are:
auth Authorizes access to your Amazon Cloud Drive account
get Download files
info Display a node's metadata
ls List files and folder in the root folder of the drive
storage Prints information on storage usage and quota
version Prints the acdcli version
Storage information, the forth and fifth columns are billable storage (displays zeroes in this example taken on an Umlimited Everything plan):
% acdcli storage
Quota (last calculated 1 second ago)
Size: 100TiB, Available: 100TiB, Used: 0%
Usage (last calculated now)
Photos 31GiB 10,820 0B 0
Video 56GiB 121 0B 0
Doc 9.3MiB 40 0B 0
Other 37GiB 361 0B 0
Total 124GiB 11,342 0B 0
Listing items at the top-level folder:
% acdcli ls
- Archives/
- Backups/
- Documents/
- Pictures/
- Shared/
- Videos/
700KiB example.jpg
1.2MiB sample.doc
Listing items by specifying the folder (initial /
is optional):
% acdcli ls /Documents/Samples
- Subfolder/
2.7KiB Lorem Ipsum.txt
26KiB sample.jpg
20MiB sample.mp4
15B sample.txt
Listing a specific file (initial /
is optional):
% acdcli ls /Documents/Samples/sample.mp4
20MiB sample.mp4
Download a file to current directory:
% acdcli get /Documents/Samples/sample.jpg
Download a file to /tmp/some/folder
(output directory must exist):
% acdcli get /Documents/Samples/sample.jpg /tmp/some/folder
Download a file to a local name (output directory must exist):
% acdcli get /Documents/Samples/sample.jpg /tmp/some/folder/downloaded.jpg
Display any node's metadata, works for files and folders. In case of a file, Amazon Cloud Drive might extract additional information.
% acdcli info /Documents/Samples/sample.mp4
{
"id": "6wDU-sqpRXSWOq1zYYPM0A",
"kind": "FILE",
"version": 12,
"labels": [],
"contentProperties": {
"contentDate": "1970-01-01T00:00:00.000Z",
"extension": "mp4",
"size": 21069678,
"video": {
"rotate": 0,
"bitrate": 1436830,
"audioCodec": "aac",
"creationDate": "1970-01-01T00:00:00.000Z",
"videoFrameRate": 25,
"encoder": "Lavf53.24.2",
"audioBitrate": 383869,
"audioSampleRate": 48000,
"audioChannelLayout": "5.1",
"duration": 117.312,
"videoBitrate": 1048652,
"audioChannels": 6,
"width": 1280,
"height": 720,
"videoCodec": "h264"
},
"contentType": "video/mp4",
"version": 1,
"md5": "442a2dc932b8a4a26ca12b73e796507b"
},
"createdDate": "2015-05-17T01:54:05.291Z",
"createdBy": "CloudDriveWeb",
"restricted": false,
"modifiedDate": "2015-05-17T01:55:16.621Z",
"name": "sample.mp4",
"isShared": false,
"properties": {
"CloudDrive": {
"Processing": "VIDEO_PROCESSED"
}
},
"parents": [
"L_9wVa74QWyYmqJITeYmhw"
],
"status": "AVAILABLE"
}
Version:
% acdcli version
acdcli v0.1-dev (6c9065149252edcb9ff212296bc4b514e0bb12bb)
using go-acd v0.1
Refer to the milestones and issues for more information on planned features.
The following is a rough list of milestones:
- v0.1: read-only
- v0.2: read-write
- v1.0: caching and improvements
- v1.1: encrypted folders
- v1.2: FUSE filesystem
- v1.3: multi-account
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
acdcli uses code, ideas and inspiration from the following projects:
Thanks to the original authors for making their code available. Without their contributions to open source, acdcli would not have turned out the way it has.
Copyright (c) 2015 Serge Gebhardt. All rights reserved.
Use of this source code is governed by the ISC license that can be found in the LICENSE file.