/ Nasıl Yapılır?

Minio ile Amazon S3 sunucusu oluşturmak

Amazon 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'dan tek farkı sunucunun size ait olması ve tabiki fiyatlandırma uygulanmıyor olması (sunucu ücreti haricinde).

Minio sunucusu kurulumuna geçelim. Örnekte Debian tabanlı bir sunucu kullanmaktayım. Öncelikle sunucumuza gerekli olan malzemeler; Minio'nun yazıldığı dil olan golang, git ve supervisor'dür.

apt-get update
apt-get install git

Go'yu paket yöneticisinden kurmuyoruz çünkü buradaki Go versiyonu eski. Bu yüzden direkt indiriyoruz.

wget https://storage.googleapis.com/golang/go1.7.4.linux-amd64.tar.gz
tar -C ${HOME} -xzf go1.7.4.linux-amd64.tar.gz

Buradaki kaynak 64 bit Linux için. Platformunuza uygun kaynağı buradan bulabilirsiniz.

nano ~/.bashrc ya da kullandığınız bir editör ile ~/.bashrc'ye aşağıdaki export'ları ekleyelim.

export GOROOT=${HOME}/go
export GOPATH=${HOME}/work
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

go version komutuyla kurulumu kontrol edebiliriz.

Minio'yu kuralım.

go get -u github.com/minio/minio

Biraz bekledikten sonra kurulum tamamlanıyor.

Şimdi supervisor isimli process yöneticisini kuralım. Bunu Minio'yu arkaplanda çalıştırmak için kullanacağız.

apt-get install supervisor

nano /etc/supervisor/conf.d/minio.conf ile aşağıdaki komutları dosyaya ekleyelim:

[program:minio]
command=/root/work/bin/minio server --address :80 /root/files
autostart=true
autorestart=true
startretries=10
environment=MINIO_ACCESS_KEY=ORNEK123,MINIO_SECRET_KEY=ORNEK123
redirect_stderr=true
stdout_logfile=/root/minio.log

environment'teki MINIO_ACCESS_KEY ve MINIO_SECRET_KEY parametrelerini kendinize göre düzenleyin.
Not: Access key 5-20, access secret ise 8-40 karakter arasında olabilir.

Son olarak supervisor'u yeniden başlatalım:

sudo service supervisor restart 
supervisorctl reload

supervisorctl status minio komutuyla da çalıştığından emin olabiliriz.

Tarayıcımızdan sunucu adresimiz ile Minio'nun web arayüzüne bağlanabiliriz ya da S3 destekleyen herhangi bir client'in/kütüphanenin server adresi olarak sunucu adresimizi yazabiliriz.

Minio resmi dökümanından, dillerine göre örnek kodlar:
PHP, Ruby, Python, Go, Java

İyi çalışmalar.