Я запускаю мини-сервер в контейнере docker-compose. Я пытаюсь загрузить файл на мини-сервер в контейнере с хост-машины (Ubuntu) (вместо контейнера) с помощью мини-клиента (Python SDK).
Я не сделал это, как ожидалось.
Мне не ясно, из-за моей конечной точки (URL) или из-за проблемы соединения между контейнером и хостом?
Конечные точки, которые я пробовал:
url_1 = 'http://minio:9000' # из моей настройки по умолчанию для minio link;
url_2 = 'http://localhost:9000/minio/test' # из браузера Minio.
Для url_1 я получил следующее: "botocore.exceptions.EndpointConnectionError: Не удалось подключиться к URL-адресу конечной точки: http://minio:9000/test".
Строка ошибки: s3.create_bucket (Bucket = 'test')
Для url_2 я получил следующее: «Весь доступ к этому сегменту отключен».
Строка ошибки: s3.create_bucket (Bucket = 'test')
Я попробовал аналогичную вещь: активировать мой мини-сервер и мини-клиент на моем хост-компьютере. Затем я загружаю файл с мини-клиента на мини-сервер. Я вижу эти загруженные файлы в браузере Minio на localhost.
######### Python скрипт для загрузки файлов
import boto3
from botocore.client import Config
import os
import getpass
my_url1='http://minio:9000' # this is from os.environ['S3_URL']
my_url2='http://localhost:9000/minio/test' # this is from browser
s3 = boto3.resource('s3',
endpoint_url=my_url2,
aws_access_key_id=os.environ['USER'],
aws_secret_access_key = getpass.getpass('Password:'),
config = Config(signature_version='s3v4'),
region_name='us-east-1')
print ('********', s3)
s3.create_bucket(Bucket='test')
uploadfile= os.getcwd()+'/'+'test.txt'
s3.Bucket('testBucket').upload_file(uploadfile,'txt')
######### docker-yml файл для Minio
minio:
image: minio/minio
entrypoint:
- minio
- server
-/data
ports:
- "9000:9000"
environment:
minio_access_key = username
minio_secret_key = password
mc:
image: minio/mc
environment:
minio_access_key = username
minio_secret_key = password
entrypoint:
/bin/sh -c
depends_on:
minio
Я ожидал увидеть загруженные файлы из браузера minio ('http://localhost:9000/minio/test'), точно так же, как я сделал, активировав minio-server и minio-client на хосте.