The project kept no change history of its own, so the tags were the only record of what each release contained. - Summarise 2.0.0, 2.0.1 and 2.0.2 by what changed for the user. - Link the changelog from the README.
mdrs
mdrs is a command-line client for uploading and downloading files to and from an MDRS-based repository.
Installing
Build from source
cargo build --release
The compiled binary will be available at target/release/mdrs.
To build a fully static binary for Linux:
cargo build --release --target x86_64-unknown-linux-musl
Configuration
Environment variables
The following environment variables can be set, either in the shell or via a .env file placed in the working directory:
| Variable | Default | Description |
|---|---|---|
MDRS_CLIENT_CONFIG_DIRNAME |
~/.mdrs-client |
Directory where config and login cache files are stored |
MDRS_CLIENT_CONCURRENT |
10 |
Number of concurrent file transfers for upload/download |
Example Usage
config create
Register a remote host.
mdrs config create neurodata https://neurodata.riken.jp/api
config update
Update the URL of a registered remote host.
mdrs config update neurodata https://neurodata.riken.jp/api
config list
List registered remote hosts.
mdrs config list
mdrs config ls
config delete
Remove a registered remote host.
mdrs config delete neurodata
mdrs config rm neurodata
login
Log in to a remote host and cache credentials.
mdrs login neurodata:
Username: (enter your login name)
Password: (enter your password)
mdrs login -u USERNAME -p PASSWORD neurodata:
logout
Log out from a remote host and remove cached credentials.
mdrs logout neurodata:
whoami
Print the currently logged-in user name.
mdrs whoami neurodata:
labs
List all laboratories accessible to the current user.
mdrs labs neurodata:
ls
List the contents of a remote folder. You can also specify a DOI path in the form remote:10.xxxx/yyy.ID[/optional/subpath].
mdrs ls neurodata:/NIU/Repository/
mdrs ls -p SHARING_PASSWORD neurodata:/NIU/Repository/PW_Open/
mdrs ls -r neurodata:/NIU/Repository/Dataset1/
mdrs ls -J -r neurodata:/NIU/Repository/Dataset1/
mdrs ls -q neurodata:/NIU/Repository/
# DOI access examples:
mdrs ls neurodata:10.60178/cbs.20260429-001
mdrs ls "neurodata:10.60178/cbs.20260429-001/Figure 1"
mkdir
Create a new remote folder.
mdrs mkdir neurodata:/NIU/Repository/TEST
upload
Upload a file or directory to a remote folder.
mdrs upload ./sample.dat neurodata:/NIU/Repository/TEST/
mdrs upload -r ./dataset neurodata:/NIU/Repository/TEST/
mdrs upload -r --skip-if-exists ./dataset neurodata:/NIU/Repository/TEST/
download
Download a file or folder from a remote path. You can also specify a DOI path.
mdrs download neurodata:/NIU/Repository/TEST/sample.dat ./
mdrs download -r neurodata:/NIU/Repository/TEST/dataset/ ./
mdrs download -p SHARING_PASSWORD neurodata:/NIU/Repository/PW_Open/Readme.dat ./
mdrs download -r -e /NIU/Repository/TEST/dataset/skip neurodata:/NIU/Repository/TEST/dataset/ ./
mdrs download -r --skip-if-exists neurodata:/NIU/Repository/TEST/dataset/ ./
# DOI access examples:
mdrs download -r neurodata:10.60178/cbs.20260429-001 ./
mv
Move or rename a file or folder on the remote.
mdrs mv neurodata:/NIU/Repository/TEST/sample.dat neurodata:/NIU/Repository/TEST2/sample2.dat
mdrs mv neurodata:/NIU/Repository/TEST/dataset neurodata:/NIU/Repository/TEST2/
cp
Copy a file or folder on the remote.
mdrs cp neurodata:/NIU/Repository/TEST/sample.dat neurodata:/NIU/Repository/TEST2/sample2.dat
mdrs cp -r neurodata:/NIU/Repository/TEST/dataset neurodata:/NIU/Repository/TEST2/
rm
Remove a file or folder from the remote.
mdrs rm neurodata:/NIU/Repository/TEST/sample.dat
mdrs rm -r neurodata:/NIU/Repository/TEST/dataset
chacl
Change the access level of a remote folder.
mdrs chacl private neurodata:/NIU/Repository/Private
mdrs chacl cbs_open -r neurodata:/NIU/Repository/CBS_Open
mdrs chacl pw_open -r -p SHARING_PASSWORD neurodata:/NIU/Repository/PW_Open
Available access levels: private, public, pw_open, cbs_open, 5kikan_open, cbs_pw_open, 5kikan_pw_open
metadata
Show metadata for a remote folder. You can also specify a DOI path.
mdrs metadata neurodata:/NIU/Repository/Private/
mdrs metadata -p SHARING_PASSWORD neurodata:/NIU/Repository/PW_Open/
# DOI access examples:
mdrs metadata neurodata:10.60178/cbs.20260429-001
file-metadata
Show metadata for a remote file. You can also specify a DOI path.
mdrs file-metadata neurodata:/NIU/Repository/TEST/dataset/sample.dat
mdrs file-metadata -p SHARING_PASSWORD neurodata:/NIU/Repository/PW_Open/Readme.txt
# DOI access examples:
mdrs file-metadata "neurodata:10.60178/cbs.20260429-001/Figure 1/Figure1v3.pdf"
version
Show the tool name and version number.
mdrs version
selfupdate
Update the current mdrs binary to the latest published release for
the same build target. The downloaded archive is checked against the .sha256
asset the release publishes; a release without one is reported as unverified.
mdrs selfupdate
mdrs selfupdate -y
help
Show help for a command.
mdrs --help
mdrs upload --help
Changelog
See CHANGELOG.md for the full change history.
License
MIT © 2026- Neuroinformatics Unit, RIKEN CBS