All Projects → minio → Minfs

minio / Minfs

Licence: apache-2.0
A network filesystem client to connect to Minio and Amazon S3 compatible cloud storage servers

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Minfs

Glusterfs
Gluster Filesystem : Build your distributed storage in minutes
Stars: ✭ 3,437 (+1448.2%)
Mutual labels:  storage, fuse-filesystem
awesome-storage
A curated list of storage open source tools. Backups, redundancy, sharing, distribution, encryption, etc.
Stars: ✭ 324 (+45.95%)
Mutual labels:  storage, s3-bucket
Goofys
a high-performance, POSIX-ish Amazon S3 file system written in Go
Stars: ✭ 3,932 (+1671.17%)
Mutual labels:  fuse-filesystem, s3-bucket
BlobHelper
BlobHelper is a common, consistent storage interface for Microsoft Azure, Amazon S3, Komodo, Kvpbase, and local filesystem written in C#.
Stars: ✭ 23 (-89.64%)
Mutual labels:  storage, s3-bucket
Cloudexplorer
Cloud Explorer
Stars: ✭ 170 (-23.42%)
Mutual labels:  storage, s3-bucket
Tank
《蓝眼云盘》(Eyeblue Cloud Storage)
Stars: ✭ 2,399 (+980.63%)
Mutual labels:  storage
Supertag
A tag-based filesystem
Stars: ✭ 207 (-6.76%)
Mutual labels:  fuse-filesystem
Gotgt
Simple Golang SCSI Target framework
Stars: ✭ 185 (-16.67%)
Mutual labels:  storage
Zenoh
zenoh unifies data in motion, data in-use, data at rest and computations. It carefully blends traditional pub/sub with geo-distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.
Stars: ✭ 182 (-18.02%)
Mutual labels:  storage
Longhorn
Cloud-Native distributed storage built on and for Kubernetes
Stars: ✭ 3,384 (+1424.32%)
Mutual labels:  storage
Mayastor
A cloud native declarative data plane in containers for containers
Stars: ✭ 215 (-3.15%)
Mutual labels:  storage
Store.js
Cross-browser storage for all use cases, used across the web.
Stars: ✭ 13,656 (+6051.35%)
Mutual labels:  storage
Flysystem Qiniu
💾 Flysystem adapter for the Qiniu storage.
Stars: ✭ 192 (-13.51%)
Mutual labels:  storage
Flutter localstorage
📦flutter localstorage for ios/android/desktop/web
Stars: ✭ 206 (-7.21%)
Mutual labels:  storage
Gatsby Plugin S3
Deploy your gatsby site to a S3 bucket.
Stars: ✭ 186 (-16.22%)
Mutual labels:  s3-bucket
Cassandra Operator
Kubernetes operator for Apache Cassandra
Stars: ✭ 215 (-3.15%)
Mutual labels:  storage
Github Stars Manager
Chrome extension that allows you to manage your Github stars with tags, and to create a bookmark folder with all your stars organized by the tags you created
Stars: ✭ 183 (-17.57%)
Mutual labels:  storage
Cakephp File Storage
Abstract file storage and upload plugin for CakePHP. Write to local disk, FTP, S3, Dropbox and more through a single interface. It's not just yet another uploader but a complete storage solution.
Stars: ✭ 202 (-9.01%)
Mutual labels:  storage
Brownies
🍫 Tastier cookies, local, session, and db storage in a tiny package. Includes subscribe() events for changes.
Stars: ✭ 2,386 (+974.77%)
Mutual labels:  storage
Temporal
☄️ Temporal is an easy-to-use, enterprise-grade interface into distributed and decentralized storage
Stars: ✭ 202 (-9.01%)
Mutual labels:  storage

DEPRECATED - This project is deprecated and not maintained anymore. It is recommended for all users to use one of the following options intead.

MinFS Quickstart Guide Slack Go Report Card Docker Pulls

MinFS is a fuse driver for Amazon S3 compatible object storage server. MinFS lets you mount a remote bucket (from a S3 compatible object store), as if it were a local directory. This allows you to read and write from the remote bucket just by operating on the local mount directory.

MinFS helps legacy applications use modern object stores with minimal config changes. MinFS uses BoltDB for caching and saving metadata, list of files, permissions, owners etc.

Be careful, it is always possible to remove boltdb cache. Cache will be recreated by MinFS synchronizing metadata from the server.

POSIX Compatibility

MinFS is not a POSIX conformant filesystem and it does not intend to be one. MinFS is built for legacy applications that needs to access an object store but does not expect strict POSIX compatibility. Please use MinFS if this fits your needs.

Use cases not suitable for MinFS use are:

  • Running a database on MinFS such as postgres, mysql etc.
  • Running virtual machines on MinFS such as qemu/kvm.
  • Running rich POSIX applications which rely on POSIX locks, Extended attribute operations etc.

Some use cases suitable for MinFS are:

  • Serving a static web-content with NGINX, Apache2 web servers.
  • Serving as backup destination for legacy tools unable to speak S3 protocol.

MinFS RPMs

Minimum Requirements

Install

Download the pre-built RPMs from here

yum install minfs-0.0.20170226202056-1.x86_64.rpm

Update config.json

Create a new config.json in /etc/minfs directory with your S3 server access and secret keys.

This example uses play.minio.io:9000

{"version":"1","accessKey":"Q3AM3UQ867SPQQA43P2F","secretKey":"zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG"}

Mount mybucket

Create an /etc/fstab entry

https://play.minio.io:9000/mybucket /mnt/mounted/mybucket minfs defaults,cache=/tmp/mybucket 0 0

Now proceed to mount fstab entry.

mount /mnt/mounted/mybucket

Verify if mybucket is mounted and is accessible.

ls -F /mnt/mounted/mybucket
etc/  issue

MinFS Docker Volume plugin

MinFS can also be used via the MinFS Docker volume plugin. You can mount a local folder onto a Docker container, without having to go through the dependency installation or the mount and unmount operations of MinFS.

Minimum Requirements

Using Docker Compose

Use docker-compose to create a volume using the plugin and share the volume with other containers. In the example below the volume is created using the minfs plugin and and used by nginx container to serve the static content from the bucket.

version: '2'
services:
  my-test-server:
    image: nginx
    ports:
      - "80:80"
    volumes:
      - my-test-store:/usr/share/nginx/html:ro

volumes:
  my-test-store:
    driver: minio/minfs
    driver_opts:
      endpoint: https://play.minio.io:9000
      access-key: Q3AM3UQ867SPQQA43P2F
      secret-key: zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG
      bucket: testbucket
      opts: cache=/tmp/my-test-store

Please change the endpoint, access-key, secret-key and bucket for your local Minio setup.

Once you have successfully created docker-compose.yml configuration in your current working directory.

docker-compose up

Using Docker

One can even manually install the plugin, create and the volume using docker.

Install the plugin

docker plugin install minio/minfs

Create a docker volume my-test-store using minio/minfs driver.

docker volume create -d minio/minfs \
  --name my-test-store \
  -o endpoint=https://play.minio.io:9000 \
  -o access-key=Q3AM3UQ867SPQQA43P2F \
  -o secret-key=zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG \
  -o bucket=testbucket
  -o opts=cache=/tmp/my-test-store

Please change the endpoint, access-key, secret-key, bucket and opts for your local Minio setup.

Once you have successfully created the volume, start a new container with my-test-store attached. In the example below nginx container is run to serve pages from the new volume.

docker run -d --name my-test-server -p 80:80 -v my-test-store:/usr/share/nginx/html:ro nginx

Test nginx Service

Either of the above steps create a MinFS based volume for a Nginx container. Verify if your nginx container is running properly and serving content.

curl localhost
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
  body {
   width: 35em;
   margin: 0 auto;
   font-family: Tahoma, Verdana, Arial, sans-serif;
  }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].