Simple Storage Service (S3)

Minio

https://min.io/

https://min.io/docs/minio/linux/reference/minio-mc.html

Quickstart Guide

Set up Nginx proxy with MinIO Server (USE 9001 in PROXY!)

Run

docker volume create minio_data

docker run -d \
  -p 127.0.0.1:9000:9000 \
  -p 127.0.0.1:9001:9001 \
  --name minio \
  --restart unless-stopped \
  -v minio_data:/data \
  -e "MINIO_ROOT_USER=user" \
  -e "MINIO_ROOT_PASSWORD=supersecret" \
  quay.io/minio/minio server /data --console-address ":9001"
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::blob3", "arn:aws:s3:::blob3/*" ] } ] }

s3cmd

S3 Tools - s3cmd

sudo apt install s3cmd

# --- создать файл конфигурации (~/.s3cfg) в интерактивном режиме
s3cmd --configure

# --- выгрузить файл в корзину
s3cmd put </path/to/file> s3://bucket_name

# --- задать http заголовки файлам в s3
s3cmd modify --add-header=x-amz-meta-patient:petrov \
  --add-header=x-amz-meta-status:ok \
  s3://hospital/image01.dat \
  s3://hospital/image02.dat

# --- отобразить информацию о файлах
s3cmd info s3://hospital/image01.dat s3://hospital/image02.dat

# --- синхронизировать файлы в корзине и в локальной директории
s3cmd sync s3://<имя бакета> <путь к локальной папке на компьютере>/

# --- выполнить команду с указанием файла конфигурации
s3cmd -c /path/to/config/file put </path/to/file> s3://bucket_name

Файл конфигурации ~/.s3cfg

[default]
access_key = "access_key"
secret_key = "secret_key"
bucket_location = ru-1
host_base = endpoint_url
host_bucket = endpoint_url
use_https = True