Amazon AWS S3, projelerimizin statik dosya barındırmasına büyük yardımı olan bir servistir. S3’te sorgu sayısı ve kapasitesine göre fiyatlandırma uygulanıyor. Her dil için kütüphanesi bulunduğundan, kısa sürede koda entegre edilebiliyor. Minio ise, S3’ün protokolünü kullanarak tıpkı S3 gibi davranan bir yazılımdır. Bu yüzden entegre etmek için herhangi bir S3 kütüphanesini kullanabiliyorsunuz. Amazon AWS’den hizmet almadan S3 ile geliştirme yapabilirsiniz veya kendi altyapınız üzerinden production ortamında çalıştırabilirsiniz.

Minio Go diliyle yazılmış bir programdır ve çalıştırmak sadece Minio’nun binary dosyasına ihtiyaç duyarsınız.

Minio’yu kurmak için iki farklı yöntem var.

Birinci yöntemde, bu sayfadan Minio’nun platformlara göre derlenmiş binary dosyalasını indirebilirsiniz. Mesela Raspberry Pi için linux-arm6vl/ klasörü içerisindeki minio dosyasını platformunuza indirin ve çalıştırma izni verdikten sonra çalıştıracağınız klasöre kopyalayın.

wget https://dl.min.io/server/minio/release/linux-arm6vl/minio
sudo chmod +x minio

İkinci yöntemde, Go dilini platformunuza kurup direkt kodlarını derlemektir. Go’yu indirmek için bu yazıdan Go’nun son sürümünü platformunuza kurabileceğiniz yönergeleri takip edin ve go get komutu ile kurulumu yapın.

// Binary dosyasını GOPATH'inizin tanımlı olduğu yoldaki bin klasöründen bulabilirsiniz.
GO111MODULE=on go get github.com/minio/minio

İndirdiğiniz binary dosyasını çalıştırmaya çalışın. Bir sorun meydana gelmediyse başarıyla kuruldu demektir.

Minio sunucusu başlatmak için gereken komut: minio server --address :9000 /data/yolu

Bunun anlamı Minio’yu 9000 portundan aç, verileri de /data/yolu yoluna kaydet. Çalıştırmadan önce /data/yolu‘nu oluşturduğunuzdan ve gereken yazma yetkilerini verdiğinizden emin olun.

Minio’yu arkaplanda başlatmak için bu yazıda systemd’nin kullanımı hakkında bilgilere ulaşabilirsiniz.

sudo nano /etc/systemd/system/minio.service

Raspberry Pi için örnek bir systemd config’i:

[Unit]
Description=Minio
After=network.target

[Service]
User=pi
Group=pi
Environment="MINIO_ACCESS_KEY=ADMIN"
Environment="MINIO_SECRET_KEY=PASSWORD"
ExecStart=/home/pi/minio server --address :9000 /home/pi/data

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable minio.service
sudo service minio start

Servisi başlattıktan sonra tarayıcıdan sunucu adresine ile Minio’nun web arayüzüne bağlanabiliriz ya da S3 destekleyen herhangi bir client veya kütüphanenin endpoint’i olarak bu adresi (xx.xx.xx.xx:9000) kullanabilirsiniz.

Son olarak Minio’nun resmi dökümanlarından dillere göre kütüphanelerine ve daha fazla bilgiye ulaşabilirsiniz: https://docs.min.io/docs/