info
Prerequisites - before you begin, please ensure:
Overview
The IonFS CLI provides a set of tools to manage objects and files stored in IBC S6 as if it were a remote filesystem. While the data is stored within IBC S6, the metadata is stored in a customer-controlled metadata repository.
Anyone that has been granted access to this repository, and the appropriate Ionburst Cloud Platform credentials, can interact with the stored files or objects.
To get up and running quickly, we will be using the newly released IonFS CLI local metadata repository functionality.
Shared Responsibility Model Breakdown
Customer Responsibility
- You, the customer, are responsible for the secure management of the Ionburst Cloud credentials used by
ionfs
. - You, the customer, are responsible for the security of
ionfs
metadata repositories and the metadata stored in them.
Ionburst Cloud Responsibility
- We are responsible for the security of all data stored in IBC S6 using
ionfs
. - We are responsible for the underlying security and availability of the Ionburst Cloud platform.
Getting Started
In this tutorial we will cover:
- Setting up
ionfs
. - Working with
ionfs
metadata repositories. - Listing IBC classifications with
ionfs
. - Working with
ionfs
directories. - Managing files stored on IBC S6 with
ionfs
.
Basic Usage
ionfs
allows us to do the following:
- List configured metadata repositories.
- List available IBC classifications.
- Create, list and delete
ionfs
directories. - Upload, download and delete data from IBC S6.
1. Setting up
ionfs
makes use of metadata repositories, or repos, to track the objects and files that have been secured by IBC S6. Metadata repos are specified in the configuration file stored under ~/.ionfs/appsettings.json
.
For this tutorial, we are going to create a new local directory to use for ionfs
metadata, along with the ~/.ionfs
directory used to store our configuration file.
We can now set up our ionfs
configuration file. First, add a new file to our newly created .ionfs
directory.
For MacOS and Linux users:
For Windows users:
Open this file in your text editor of choice, and add the following:
Key points to note:
- the
DataStore
entry references the local directory we've created for metadata (remember to change the username), but it cannot use relative paths, i.e:- for MacOS:
/Users/username/local-ionfs
- for Linux:
/home/username/local-ionfs
- for Windows:
/
- for MacOS:
- the
Ionburst
section relates to the Ionburst SDK credentials file. If you have an existing profile, you can add it here.
If you do not have an existing Ionburst credentials file, one can be created with the following:
For MacOS and Linux users:
For Windows users:
Open this file in your text editor of choice, and add the following (remember to add your Ionburst Cloud API credentials here):
2. Metadata Repos
Now that we have ionfs
setup, we can now start working with our metadata repo. To list the configured repos, the following ionfs
command can be used:
An example output would look like:
3. Classifications
Data can be secured by Ionburst Cloud according to available security policies. ionfs
can be used to view the policies currently available to an Ionburst Cloud party.
To list available policies, the following can be used:
An example output would look like:
4. Directories
Files and objects secured by IBC S6 through ionfs
can be organised within its repo using a typical directory structure.
List directories
To list available directories within a repo, the following can be used:
As we marked the local-ionfs
repo as the default, we can omit the name as it will be treated as the root.
An example output would look like:
By default, this will list the contents of the repo's root directory. To list a specific directory, the following can be used:
An example output would look like:
Create a directory
To create a new directory within a repo, the following can be used:
An example output would look like:
Delete a directory
To remove a directory within a repo, the following can be used:
An example output would look like:
5. Files
Finally, and most importantly we can now look at uploading (Put), downloading (Get) and deleting data from IBC S6 using ionfs
. In these examples, we'll use a file called my-file.txt
.
First, we need to create my-file.txt
:
Put
To upload a file to Ionburst Cloud with ionfs
, the following can be used:
An example output would look like:
To upload data to a specific directory within your repo, use the following:
An example output would look like:
Get
To retrieve a file with ionfs
, use the following:
An example output would look like:
By default, this will download the file from IBC S6 to the current directory, with the name used in ionfs
. To download to a specific local directory, or to download to a different filename, use the following:
An example output would look like:
Delete
To delete a file from the ionfs
repo and from IBC S6, the following can be used:
An example output would look like:
Conclusion
You should now be able to perform basic file operations on IBC S6 with ionfs
. If you're interested in learning more about the IonFS CLI, please see the Ionburst Cloud docs.