Skip to main content

GeeseFS

Last update:

GeeseFS is a program used to mount a bucket to a device or server, allowing you to work with it as you would with a regular folder. GeeseFS is suitable for working with a large number of objects, each up to 1 MB in size. GeeseFS can be used on Linux, Windows, and macOS.

Configure GeeseFS

  1. Configure access to S3.
  2. Install the client.
  3. Create a configuration.

1. Configure access to S3

Access can be configured by the Account Owner or a user with the iam.admin role.

  1. Create a service user with a role with S3 access. If you use a service user with the s3.user, object_storage_user, or s3.bucket.user role, an access policy must be configured for the bucket, and its rules must allow access to this user.
  2. Issue an S3 key to the user.

2. Install the client

  1. Ensure that utilities for working with FUSE are installed by default:

    apt list --installed | grep fuse
  2. If the utilities are not installed, install them:

    sudo apt-get install fuse
  3. Download and install GeeseFS:

    wget https://github.com/yandex-cloud/geesefs/releases/latest/download/geesefs-linux-amd64
    chmod a+x geesefs-linux-amd64
    sudo cp geesefs-linux-amd64 /usr/bin/geesefs

3. Create a configuration

  1. Open the CLI.

  2. Create a directory where the file with the S3 key will be stored:

    mkdir ~/.aws
  3. Create a credentials file:

    nano ~/.aws/credentials
  4. Add the S3 key:

    [default]
    aws_access_key_id = <access_key>
    aws_secret_access_key = <secret_key>

    Specify:

    • <access_key> — the value of the Access key field from the S3 key;
    • <secret_key> — the value of the Secret key field from the S3 key.
  5. Press Ctrl + XYEnter.

Mount the bucket

  1. Create a folder for mounting:

    mkdir /mnt/<folder_name>

    Specify <folder_name> as the name of the folder where the bucket will be mounted.

  2. Mount the bucket:

    sudo geesefs
    --endpoint https://<s3_domain>
    --region <pool>
    --profile <profile_name>
    <bucket_name> /mnt/<folder_name>

    Specify:

    • <s3_domain> — the S3 API domain depending on the pool where the bucket is located;
    • <pool> — the pool where the bucket is located;
    • <bucket_name> — the name of the bucket to be mounted;
    • <profile_name> — the profile name, default is default;
    • <folder_name> — the folder name you created in step 1.
  3. Ensure that the bucket is mounted:

    df -hT /mnt/<folder_name>

    Specify <folder_name> as the folder name you created in step 1.

Unmount the bucket

The unmounting method depends on how the bucket was mounted: once or automatically.

Unmount the bucket:

sudo umount /mnt/<local_folder>

Specify <local_folder> as the path to the folder where the bucket is mounted.