Drive Mount

A FUSE filesystem driver that allows you to mount Koneksi storage as a local filesystem on Linux and macOS.

Features

  • Mount Koneksi storage as a local filesystem

  • Read and write files directly from/to Koneksi storage

  • Directory operations (create, delete)

  • File caching for improved performance

  • Cross-platform support (Linux and macOS)

  • Read-only mode option

  • Configurable cache settings

Requirements

Linux

  • FUSE 2.9+ installed

  • Go 1.21+ (for building from source)

macOS

  • macFUSE installed (https://osxfuse.github.io/)

  • Go 1.21+ (for building from source)

Installation

From Binary Release

  1. Download the latest release for your platform from the releases pagearrow-up-right

  2. Extract the archive: tar -xzf koneksi-drive-<platform>-<arch>.tar.gz

  3. Move the binary to your PATH: sudo mv koneksi-drive /usr/local/bin/

  4. Make it executable: chmod +x /usr/local/bin/koneksi-drive

From Source

Configuration

Create a configuration file at ~/.koneksi-drive.yaml:

Usage

Basic Mount

Mount Options

Unmounting

To unmount the filesystem, press Ctrl+C in the terminal where koneksi-drive is running, or use:

Performance Considerations

  1. Caching: Enable caching for better performance with frequently accessed files

  2. Network Latency: Performance depends on your network connection to the Koneksi server

  3. Large Files: Streaming large files may be slower than local storage

  4. Concurrent Access: Multiple processes can read/write simultaneously

Troubleshooting

Linux: "Transport endpoint is not connected"

This usually means the filesystem was not properly unmounted. Fix with:

macOS: "mount_macfuse: the file system is not available"

Ensure macFUSE is properly installed:

Permission Denied

  1. Check your Koneksi API credentials in the config file

  2. Ensure the mount point directory exists and you have write permissions

  3. Try running with --debug flag for more information

Debug Mode

Run with debug output to troubleshoot issues:

Security Considerations

  1. Config File: Keep your config file secure (chmod 600 ~/.koneksi-drive.yaml)

  2. API Credentials: Never commit credentials to version control

  3. Mount Permissions: Use appropriate uid/gid and umask settings

  4. Network: Use HTTPS for API connections

Building from Source

Prerequisites

  • Go 1.21 or later

  • FUSE development headers

    • Linux: sudo apt-get install libfuse-dev (Debian/Ubuntu)

    • macOS: Install macFUSE

Build Commands

Contributing

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Last updated