nu_plugin_cloud

Crates.ionu_plugin_cloud
lib.rsnu_plugin_cloud
version0.2.1
sourcesrc
created_at2024-08-23 23:47:31.019585
updated_at2024-10-30 17:08:34.608594
descriptionA nushell plugin for working with cloud storage services
homepage
repositoryhttps://github.com/ayax79/nu_plugin_cloud
max_upload_size
id1349726
size178,386
Jack Wright (ayax79)

documentation

README

nu_plugin_cloud

Provides uniform access to cloud storage services for nushell.

Features

  • cloud ls - List the filenames, sizes, modificationtime , etags, and versions of a cloud location.
  • cloud open - Load a file into a cell, converting to table if possible (avoid by appending '--raw').
  • cloud rm - Remove a file from cloud sotrage
  • cloud save - Save a file to cloud storage
  • AWS S3 support
  • Coming Soon: Azure support
  • Coming Soon: Google cloud support

Installation

Prerequisites

Installation With Cargo

cargo install nu_plugin_cloud
plugin add ~/.cargo/bin/nu_plugin_cloud
plugin use cloud

Installation From Source

git clone https://github.com/ayax79/nu_plugin_cloud.git
cd nu_plugin_cloud
cargo install --path .
plugin add ~/.cargo/bin/nu_plugin_cloud
plugin use cloud

[!TIP] This plugin will turn of plugin GC when any operation happens.

To turn plugin GC back off and query internal caches, run:

cloud cache-clear

AWS Support

AWS Setup

Configuration for AWS uses the standard Configuration and Credential Files. To change your profile, ensure that the AWS_PROFILE environment variable is set to the desired profile.

AWS SSO

For SSO, the AWS CLI is required to configure and login. To setup AWS SSO:

This plugin uses the aws_config crate. It is very unforgiving of miss configurations.

It will work if the profile includes only the sso_session, sso_account_id, and sso_role_name. Don't include sso_start_url in the profile section for instance.

[profile my-profile]
sso_session = my-sso
sso_account_id = <numeric account id>
sso_role_name = my-iam-role
region = us-east-1
output = json

[sso-session my-sso]
sso_start_url = https://d-92677e5ab0.awsapps.com/start
sso_region = us-west-2
sso_registration_scopes = sso:account:access

Non-Cloud Storage

There are two types of supported non-cloud storage types, in-memory and file system. It can be useful to use these for testing purposes.

In-Memory Usage

Save a file from memory:

[[a b]; [1 2]] | cloud save memory:/foo.csv

Load a file from memory:

cloud open memory:/foo.csv

List files in memory:

cloud ls memory:/foo.csv

Filesystem Usage

Save a file from the local filesystem:

[[a b]; [1 2]] | cloud save file:///tmp/test/foo.csv

Load a file from the local filesystem:

cloud open file:///tmp/test/foo.csv

List files in the local filesystem:

cloud ls file:///tmp/test/foo.csv
Commit count: 40

cargo fmt