No diré mucho sobre el inicio del servicio. Lo principal es descargar este archivo minio: https://dl.min.io/server/minio/release/linux-amd64/minio, luego agregar el permiso ejecutable chmod + x minio, y luego siga lo siguiente Simplemente inícielo.
Inicio del servicio
[root@master packages]# export MINIO_ACCESS_KEY=minio_access
[root@master packages]# export MINIO_SECRET_KEY=minio_secret
[root@master packages]# ./minio server /data
Endpoint: http://192.168.128.139:9000 http://127.0.0.1:9000
AccessKey: minio_access
SecretKey: minio_secret
Browser Access:
http://192.168.128.139:9000 http://127.0.0.1:9000
Command-line Access: https://docs.min.io/docs/minio-client-quickstart-guide
$ mc alias set myminio http://192.168.128.139:9000 minio_access minio_secret
Object API (Amazon S3 compatible):
Go: https://docs.min.io/docs/golang-client-quickstart-guide
Java: https://docs.min.io/docs/java-client-quickstart-guide
Python: https://docs.min.io/docs/python-client-quickstart-guide
JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide
.NET: https://docs.min.io/docs/dotnet-client-quickstart-guide
API: SYSTEM()
Time: 11:22:05 CST 12/18/2020
DeploymentID: d1a40163-64fb-4b0b-a7f0-f4d6660b856a
Error: Not Implemented (cmd.NotImplemented)
3: cmd/fs-v1.go:1551:cmd.(*FSObjects).HealBucket()
2: cmd/bucket-metadata-sys.go:442:cmd.(*BucketMetadataSys).concurrentLoad.func1()
1: pkg/sync/errgroup/errgroup.go:55:errgroup.(*Group).Go.func1()
API: SYSTEM()
Time: 11:22:05 CST 12/18/2020
DeploymentID: d1a40163-64fb-4b0b-a7f0-f4d6660b856a
Error: Not Implemented (cmd.NotImplemented)
3: cmd/fs-v1.go:1551:cmd.(*FSObjects).HealBucket()
2: cmd/bucket-metadata-sys.go:442:cmd.(*BucketMetadataSys).concurrentLoad.func1()
1: pkg/sync/errgroup/errgroup.go:55:errgroup.(*Group).Go.func1()
...
Acceso al navegador
Abra el enlace correspondiente, ingrese el conjunto ACCESS_KEY y SECRET_KEY para acceder, y luego puede agregar cubos y cargar archivos usted mismo.
subir archivos
Se puede acceder al ejemplo oficial normalmente, pero quiero acceder al servicio creado por mí mismo, ¿no es así?
# my-testfile
hello world
Primer intento
# minio_client.py
from minio import Minio
from minio.error import InvalidResponseError
minioClient = Minio('192.168.128.139:9000',
access_key='minio_access',
secret_key='minio_secret',
)
import os
# Put a file with default content-type, upon success prints the etag identifier computed by server.
try:
with open('my-testfile', 'rb') as file_data:
file_stat = os.stat('my-testfile')
print(minioClient.put_object('mybucket', 'myobject',
file_data, file_stat.st_size))
except InvalidResponseError as err:
print(err)
C:\Users\lukaiyi\AppData\Local\Programs\Python\Python36\python.exe C:/python_learning/minio_client.py
Traceback (most recent call last):
File "C:\Users\lukaiyi\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\connectionpool.py", line 706, in urlopen
chunked=chunked,
...
File "C:\Users\lukaiyi\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\util\retry.py", line 573, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='192.168.128.139', port=9000): Max retries exceeded with url: /mybucket?location= (Caused by SSLError(SSLError(1, '[SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:749)'),))
Se informó un error. La razón por la que finalmente encontré parece ser que la seguridad requerida por defecto es relativamente alta, así que simplemente restablezca seguro = Falso.
Segundo intento
Al subir archivos al depósito, recuerde crear primero el depósito; de lo contrario, se informará un error que indica que el depósito no existe.
# minio_client.py
from minio import Minio
from minio.error import InvalidResponseError
minioClient = Minio('192.168.128.139:9000',
access_key='minio_access',
secret_key='minio_secret',
secure=False
)
minioClient.make_bucket("mybucket", location="us-east-1")
import os
# Put a file with default content-type, upon success prints the etag identifier computed by server.
try:
with open('my-testfile', 'rb') as file_data:
file_stat = os.stat('my-testfile')
print(minioClient.put_object('mybucket', 'myobject',
file_data, file_stat.st_size))
except InvalidResponseError as err:
print(err)
Compruébalo, de hecho se ha subido.
descargar archivo
from minio import Minio
from minio.error import InvalidResponseError
minioClient = Minio('192.168.128.139:9000',
access_key='minio_access',
secret_key='minio_secret',
secure=False
)
try:
data = minioClient.get_object('mybucket', 'myobject')
print(data.read())
except InvalidResponseError as err:
print(err)
C:\Users\lukaiyi\AppData\Local\Programs\Python\Python36\python.exe C:/python_learning/minio_client.py
b'hello world\n'
Process finished with exit code 0
Como puede ver, el archivo que acaba de cargar se puede descargar normalmente.