Cells Client
Cells Client provides an easy way to communicate with a Pydio Cells server instance from the command line (or from automation scripts). It uses the Cells SDK for Go and the REST API under the hood.
Cells Client a.k.a cec
works like standard command line tools like ls, scp, etc. Using the cec
command, you can list, download and upload directly to your remote Cells server.
The v4 version of this tools is meant to be used with a remote Cells server that is also at version v4+, please rather use cells-client v2 if your server is older (but you really should update your Cells server!).
Usage¶
Use the cec --help
command to know about available commands. You can also find the complete documentation for each command on our website
Below are a few interesting commands for manipulating files:
cec ls
: List files and folders on the server, when no path is provided, it lists the workspaces that the current user can access.cec scp
: Upload/Download file to/from a remote server.cec cp
,cec mv
andcec rm
: Copy, move, rename and delete files within the server.cec mkdir
: Create a folder on the remote servercec clear
: Clear authentication tokens stored in your keychain.
For your convenience, here are a few examples, assuming that your client is connected to a server (see Section below for connecting) :
1/ Listing the content of the personal-files workspace¶
2/ Showing details about a file¶
3/ Uploading a file to server¶
4/ Download a file from server¶
Installation¶
Cells Client is a single self-contained binary file and is easy to install.
1 - Download cec¶
Grab the built version for your corresponding amd64 architectures:
2 - Make it executable¶
Give execution permissions to the binary file, typically on Linux: chmod u+x cec
.
3 - Add it to the PATH (optional)¶
Add the command to your PATH
environment variable, to makes it easy to call the command from anywhere in the system. On Linux, you can for instance add a symlink to the binary location (replace below with correct path):
4 - Check for correct installation¶
To verify that cec
is correctly installed, simply run for instance:
Connecting To Cells¶
Cells Client requires an authenticated connection to the target Cells server. For a given user, read/write permissions are applied in the same way as what you see in the web interface.
Once a valid user is available, there are 2 options:
- Go through an interactive configuration and persist necessary information on the client machine (Persistent Mode)
- Pass the necessary connection information at each call (Non Persistent Mode)
Persistent Mode¶
Connections can be configured and persisted locally on the client machine. As from version v2.2.0, you can configure multiple accounts on the client side and switch between them as necessary.
Last used connection is persisted locally in the main configuration file and will be re-used the next time you call the cec
command.
To switch between accounts, simply call cec config use
.
Calling the cec config add
command offers various authentication mechanisms. For persistent mode, we advise to use the default OAuth Authorization Code flow.
You will be guided through a few steps to configure and persist your connection:
- Enter your server address: the full URL to access your Cells instance, e.g.:
https://files.example.com/
- Choose OAuth2 process either by opening a browser or copy/pasting the URL in your browser to get a valid token
- Test and validate the connection.
The token is saved locally and will be refreshed automatically as required. If a keyring mechanism is available on the machine, it is used to store sensitive information. You can verify this with the following command:
Supported keyrings are MacOSX Keychain, Linux DBUS and Windows Credential Manager API.
Troubleshooting¶
When launching the Cells Client, following error is thrown:
This mostly happens when Cells Client cannot find the keyring it expects to store credentials. Under Debian/Ubuntu Linux, you can install necessary software with (even if you do not use GNOME):
Non Persistent Mode¶
This mode can be useful to use the Cells Client in a CI/CD pipe or via cron jobs. In such case, we strongly advise you to create a Personal Access Token on the server and use this.
To create a token that is valid for user robot
for 90 days, log via SSH into your server as pydio
(a.k.a. as the user that runs the cells
service) and execute:
Note: if you have the Enterprise Edition, you can also manage Personal Access Token via the web GUI:
- Go to
Cells Admin Console >> Identity Management >> People
- Edit the user you want to create a token for
- Go to the
Personal Access Token
page.
Then use environment variables (or the corresponding command flags) to pass connection information:
You can now directly talk to your server, for instance:
Note that environment variables take the precedence as soon as you have the
CEC_URL
variable defined. In such case please insure you have the necessary variables defined depending on your target authentication mode.
Command Completion¶
Cells Client provides a handy feature that provides completion on commands and paths; both on local and remote machines.
NOTE: you must add cec
to you local PATH
if you want to configure the completion helper (see above).
Bash completion¶
To enable this feature, you must have bash-completion
third party add-on installed on your workstation.
MacOS latest release changed the default shell to ZSH.
Then, to add the completion in a persistent manner:
You can also only source the file in current session, the feature will be gone when you start a new shell.
Note: if you want to use completion for remote paths while using scp
sub command, you have to prefix the remote path with cells//
rather than cells://
; that is to omit the column character before the double slash. Typically:
Note: when you update the Cells Client, you also have to update the completion file, typically on Linux machines:
Build from source¶
If you rather want to directly compile the source code on your workstation, you require:
- Go language 1.20 or higher (tested with latest 1.20 & 1.21), with a correctly configured Go toolchain,
- The necessary build utils (typically
make
,gcc
, ...) - A git client
You can then retrieve the source code and use the Makefile
to compile a binary for your OS:
Cells Client uses the Go Modules mechanism to manage dependencies: you can checkout the code anywhere in your local machine, it does not have to be within your GOPATH
.
License¶
This project is licensed under the Apache V2 License - see the LICENSE file for details.