#s3 #gc #bucket #file

bin+lib remote-files

a cli/lib wrapper of opendal to download/upload and manage remote files on buckets

3 releases

0.1.2 Oct 17, 2024
0.1.1 Feb 9, 2024
0.1.0 Dec 15, 2023

#199 in Authentication

MIT license

40KB
944 lines

Remote Files

A command line and library wrapper of OpenDAL, which allows managing remote files on buckets, such as download and download them.

Currently supported buckets are:

Remote-files may work also with cloud storage providers that offer an API compatible with GCS or S3, but no guarantees are provided.

Installation

cargo install remote-files

Configuration

In order to use remote-files it is necessary to generate a configuration file that lists all the connection profiles, alongside their credentials details.

The location of this configuration file is governed through environment variable RF_CFG_FILEPATH, whose default value depends on the operating system.

OS OS Configuration Folder Example
Linux $HOME/.config /home/alice/.config/rf/configuration.json
MacOS $HOME/Library/Application Support /Users/Alice/Library/Application Support/rf/configuration.json
Windows {FOLDERID_RoamingAppData} C:\Users\Alice\AppData\Roaming\rf\configuration.json

Examples

Here is provided an example of configuration file that defines two different connection profiles, one for Google Cloud Storage and one for Amazon S3.

{
  "my-gcs-bucket": {
    "type": "gcs",
    "configuration": {
      "name": "my-gcs-bucket",
      "credentialPath": "~/.config/gcloud/application_default_credentials.json"
    }
  },
  "my-aws-bucket": {
    "type": "s3",
    "configuration": {
      "name": "my-aws-bucket",
      "endpoint": null,
      "prefix": null,
      "region": "eu-west-1",
      "accessKeyId": "********************",
      "secretAccessKey": "******************************",
      "defaultStorageClass": null
    }
  }
}

Commands

In the following sections are described which commands can be executed with remote-files.

profiles

Manage connection profiles

list

List files in selected folder

download

Download selected file from source directory

upload

Upload selected file to target directory

Dependencies

~21–35MB
~540K SLoC