Add docker compose with MinIO and Redis
This commit is contained in:
@@ -1,44 +0,0 @@
|
|||||||
import asyncio
|
|
||||||
from aiobotocore.session import get_session
|
|
||||||
|
|
||||||
|
|
||||||
AWS_ACCESS_KEY_ID = "some_username"
|
|
||||||
AWS_SECRET_ACCESS_KEY = "some_password"
|
|
||||||
ENDPOINT_URL = ""
|
|
||||||
|
|
||||||
|
|
||||||
async def main():
|
|
||||||
session = get_session()
|
|
||||||
|
|
||||||
# Создаем S3 клиент
|
|
||||||
async with session.create_client(
|
|
||||||
"s3",
|
|
||||||
region_name="us-east-1",
|
|
||||||
aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
|
|
||||||
aws_access_key_id=AWS_ACCESS_KEY_ID,
|
|
||||||
endpoint_url=ENDPOINT_URL, # важно для MinIO
|
|
||||||
) as s3:
|
|
||||||
|
|
||||||
bucket = "mybucket"
|
|
||||||
key = "example.txt"
|
|
||||||
|
|
||||||
# 1. Создаем bucket
|
|
||||||
print("Создаю bucket…")
|
|
||||||
await s3.create_bucket(Bucket=bucket)
|
|
||||||
|
|
||||||
# 2. Загружаем файл (put_object)
|
|
||||||
print("Загружаю файл…")
|
|
||||||
await s3.put_object(
|
|
||||||
Bucket=bucket,
|
|
||||||
Key=key,
|
|
||||||
Body=b"Hello from aiobotocore + MinIO!"
|
|
||||||
)
|
|
||||||
|
|
||||||
# 3. Скачиваем файл
|
|
||||||
print("Скачиваю файл…")
|
|
||||||
obj = await s3.get_object(Bucket=bucket, Key=key)
|
|
||||||
data = await obj["Body"].read()
|
|
||||||
print("Содержимое:", data.decode())
|
|
||||||
|
|
||||||
|
|
||||||
asyncio.run(main())
|
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
version: "3.9"
|
||||||
|
|
||||||
|
services:
|
||||||
|
minio:
|
||||||
|
image: minio/minio:latest
|
||||||
|
container_name: minio-server
|
||||||
|
ports:
|
||||||
|
- "5356:9000"
|
||||||
|
- "5357:9001"
|
||||||
|
environment:
|
||||||
|
MINIO_ROOT_USER: ${S3_ACCESS_KEY_ID}
|
||||||
|
MINIO_ROOT_PASSWORD: ${S3_SECRET_ACCESS_KEY}
|
||||||
|
volumes:
|
||||||
|
- /home/volochay/coldstorage/minio:/data
|
||||||
|
command: server /data --console-address ":9001"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/ready"]
|
||||||
|
interval: 5s
|
||||||
|
timeout: 3s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
minio-init:
|
||||||
|
image: minio/mc:latest
|
||||||
|
depends_on:
|
||||||
|
minio:
|
||||||
|
condition: service_healthy
|
||||||
|
environment:
|
||||||
|
S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID}
|
||||||
|
S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY}
|
||||||
|
BUCKET_NAME: ${BUCKET_NAME}
|
||||||
|
entrypoint: >
|
||||||
|
/bin/sh -c "
|
||||||
|
mc alias set local http://minio:9000 ${S3_ACCESS_KEY_ID} ${S3_SECRET_ACCESS_KEY} &&
|
||||||
|
mc mb -p local/${BUCKET_NAME} || true &&
|
||||||
|
mc ilm rule add --expire-days 1 local/${BUCKET_NAME}
|
||||||
|
"
|
||||||
Reference in New Issue
Block a user