Coder Social home page Coder Social logo

meyskens / minfs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from minio/minfs

0.0 3.0 0.0 4.71 MB

A network filesystem client to connect to Minio and Amazon S3 compatible cloud storage servers

License: Apache License 2.0

Makefile 5.40% Shell 12.99% Go 81.61%

minfs's Introduction

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.

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>

minfs's People

Contributors

harshavardhana avatar nl5887 avatar minio-trusted avatar nitisht avatar krisis avatar meyskens avatar rremer avatar stas2k avatar curx avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.