/minio-irods-gateway

🔬Experimental Minio (S3) Gateway for iRODS 💾

Primary LanguageGoMIT LicenseMIT

BioTeam / minio-irods-gateway

Expose data in your iRODS zone as S3 object storage via Minio gateway. Read the implementation blog post here.

hello_s3

GoDoc

Initial Setup

  1. Login to iCAT with iinit
  2. Install Specific Query:
$ iadmin asq "SELECT R_META_MAIN.meta_attr_value, R_DATA_MAIN.modify_ts, R_DATA_MAIN.data_size, R_DATA_MAIN.data_checksum, R_DATA_MAIN.data_name FROM R_OBJT_METAMAP JOIN R_META_MAIN ON R_META_MAIN.meta_id = R_OBJT_METAMAP.meta_id LEFT JOIN R_DATA_MAIN ON R_DATA_MAIN.data_id = R_OBJT_METAMAP.object_id WHERE R_META_MAIN.meta_attr_name = ? AND R_META_MAIN.meta_attr_value LIKE ? ORDER BY R_META_MAIN.meta_attr_value ASC" minio_list_objects
  1. Create Minio iRODS User:
$ iadmin mkuser BKIKJAA5BMMU2RHO6IBB rodsadmin
$ iadmin moduser BKIKJAA5BMMU2RHO6IBB password V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12

Your iRODS username will act as MINIO_ACCESS_KEY, and your password as MINIO_SECRET_KEY. You should regenerate these strings or utilize an existing iRODS user and password in later steps.

Build & Run

  1. Clone and cd into this repo's root directory
  2. Build Docker Container:

Note:

You can also download a pre-built Docker container: docker pull jacquayj/minio-irods-gateway

$ docker build -t minio-irods-gateway .
  1. Run minio-irods-gateway Container:

Replace the connection details with your own iRODS provider server and credentials.

$ docker run -p 9000:9000 \
	-e "MINIO_ACCESS_KEY=BKIKJAA5BMMU2RHO6IBB" \
	-e "MINIO_SECRET_KEY=V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12" \
	minio-irods-gateway gateway irods \
	192.168.1.147 1247 tempZone /tempZone/home/BKIKJAA5BMMU2RHO6IBB
  1. 😎 Browse 😎

screen shot 2018-06-29 at 2 34 22 pm

  1. Read more about the implementation details

  2. This project has issues, help out by contributing!