min*_*der 5 python python-2.7 docker-compose ubuntu-16.04 minio
我在 docker-compose 的容器中运行一个 minio-server。我正在尝试使用 minio-client(python SDK)从主机(Ubuntu)(而不是容器)将文件上传到容器中的 minio-server。我没有让它按预期发生。我不清楚是因为我的端点(URL),还是因为容器和主机之间的连接问题?
我尝试的端点:
url_1 = ' http://minio:9000 ' # 来自我默认的 minio 链接设置;
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-server 和 minio-client。然后我将文件从 minio-client 上传到 minio-server。我可以在本地主机的 Minio 浏览器中看到那些上传的文件。
#########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')
Run Code Online (Sandbox Code Playgroud)
######### Minio 的 docker-yml 文件
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
Run Code Online (Sandbox Code Playgroud)
我希望从 minio 浏览器(' http://localhost:9000/minio/test ')看到上传的文件,就像我在主机上激活 minio-server 和 minio-client 所做的一样。
使用默认的 docker 网络,您必须尝试在主机上通过http://localhost:9000访问 minio。因此,您可以在 Python 脚本中使用此 URL。http ://minio:9000将在与您的 minio 服务器位于同一 docker 网络上的容器中工作。
| 归档时间: |
|
| 查看次数: |
3118 次 |
| 最近记录: |