FIST MinIO Client SDK for Python
基于MinIO Python Client SDK 构建 FIST 内部 Py-Client 访问 MinIO 云存储服务
本文将介绍如何安装FIST MinIO Client SDK for Python,并基于fistminio.fistapi进行fistminio用户注册,运行简单文件上传和下载示例程序。对于更完整的API以及更多使用示例,请参考Python Client API Reference。
假设您已经有一个可运行的 Python开发环境。
Update history:
- 2024-01-31 1.0.1 初始版本
- 2024-04-19 1.0.2 新增外网ip访问
最低要求
- Python 3.7或更高版本
使用pip安装
pip install fistminio
示例-自行注册fistminio用户
需要根据《fistuser使用手册》手册,创建 fistmino_autousers_keys.yaml配置文件,再执行python auto_register.py
auto_register.py
from fistminio.fistapi import register_user
# 自动进行fistminio用户注册
register_user('fistmino_autousers_keys.yaml')
Run auto_register
python auto_register.py
配置 FIST MinIO Client
FIST MinIO client需要以下3个参数来连接 FIST MinIO 对象存储服务。
| 参数 | 描述 |
|---|---|
| bucket_name | 所在FIST存储服务器上的存储桶名(默认为Username) |
| access_key | Access key是唯一标识你的账户的用户ID |
| secret_key | Secret key是你账户的密码 |
示例-文件夹上传
本示例使用测试用户 wangdc 访问 FIST MinIO 对象存储服务,并上传一个文件文件夹到存储桶中。
folder_upload.py
from fistminio.fistapi import init_minio_client, upload_folder
# 替换为自己的access_key和secret_key
access_key="your_access_key"
secret_key="your_secret_key"
client = init_minio_client(access_key, secret_key)
# bucket_name替换为自己的Username
bucket_name = "wangdc"
# 本地需要上传的文件夹路径
source_folder = "C:\\Users\\18058\\Desktop\\youtube"
# FIST存储服务器上的目标文件夹路径,如果没用会自动新建文件夹
target_folder = "youtube/"
# 调用upload_folder上传整个文件
upload_folder(client, bucket_name, source_folder, target_folder)
Run folder_upload
python folder_upload.py
Uploading files: 100%|████████████████| 99/99 [00:06<00:00, 15.04it/s]
😀 Upload successful. All contents from the local folder 'C:\Users\18058\Desktop\youtube' have been successfully uploaded to the bucket 'wangdc/youtube/'.
其他示例
目前fistminio.fistapi实现单文件/文件夹上传、下载、删除,更多api待完善。
single_file_upload.py
from fistminio.fistapi import init_minio_client, fupload
# 替换为自己的access_key和secret_key
access_key="your_access_key"
secret_key="your_secret_key"
client = init_minio_client(access_key, secret_key)
# bucket_name替换为自己的Username
bucket_name = "wangdc"
# 本地需要上传的文件路径
source_file = "tmp/test-file.txt"
# FIST 存储服务器上的目标文件路径
dest_file = "/newfolder/rename-test-file.txt"
# 调用upload上传单个文件
fupload(client, bucket_name, source_file, dest_file)
single_file_download.py
from fistminio.fistapi import init_minio_client, fdownload
# 替换为自己的access_key和secret_key
access_key="your_access_key"
secret_key="your_secret_key"
client = init_minio_client(access_key, secret_key)
# bucket_name替换为自己的Username
bucket_name = "wangdc"
# FIST存储服务器上需要下载的文件路径
source_file = "CrawlGoogleScholar_v1.rar"
# 目标文件本地路径
dest_file = "tmp/CrawlGoogleScholar_v1.rar"
# 调用fdownload下载单个文件
fdownload(client, bucket_name, source_file, dest_file)
folder_download.py
from fistminio.fistapi import init_minio_client, download_folder
# 替换为自己的access_key和secret_key
access_key="your_access_key"
secret_key="your_secret_key"
client = init_minio_client(access_key, secret_key)
# bucket_name替换为自己的Username
bucket_name = "wangdc"
# FIST存储服务器上需要下载的文件夹路径
source_folder_prefix = "hmr-master/"
# 目标文件夹本地路径
dest_local_folder_path = "tmp/hmr-master/"
# 调用download_folder下载整个文件夹
download_folder(client, bucket_name, source_folder_prefix, dest_local_folder_path)
single_file_deleted.py
from fistminio.fistapi import init_minio_client, delete_object_from_bucket
# 替换为自己的access_key和secret_key
access_key="your_access_key"
secret_key="your_secret_key"
client = init_minio_client(access_key, secret_key)
# bucket_name替换为自己的Username
bucket_name = "wangdc"
# FIST存储服务器上要删除的目标文件路径
target_file = "youtube/start.bat"
# 调用delete_object_from_bucket删除单个文件
delete_object_from_bucket(client, bucket_name, target_file)
folder_deleted.py
from fistminio.fistapi import init_minio_client, download_folder
# 替换为自己的access_key和secret_key
access_key="your_access_key"
secret_key="your_secret_key"
client = init_minio_client(access_key, secret_key)
# bucket_name替换为自己的Username
bucket_name = "wangdc"
# FIST存储服务器上需要下载的文件夹路径
source_folder_prefix = "hmr-master/"
# 目标文件夹本地路径
dest_local_folder_path = "tmp/hmr-master/"
# 调用download_folder下载整个文件夹
download_folder(client, bucket_name, source_folder_prefix, dest_local_folder_path)
Metadata
Release files for fistminio 1.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| fistminio-1.0.5.tar.gz | 10.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fistminio-1.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.2 kB
Release files / fistminio-1.0.5.tar.gz
| Download URL | fistminio-1.0.5.tar.gz |
|---|---|
| Size | 10.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a4bfabd56944242156d7e5799ff55ee19a0399541592c3b547104b54a2e99b70
|
|
BLAKE2b-256 checksum How to use checksums |
a326d4fe4864d66a8fba73985a84600685fdd8cd96ac2dab4c32e494fcb5d35b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.7.16
|
Release files / fistminio-1.0.5-py3-none-any.whl
| Download URL | fistminio-1.0.5-py3-none-any.whl |
|---|---|
| Size | 10.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a45e51f6045c8a0b542db52aab61ebed49bbca509d9007fe8d278a3e00a61f08
|
|
BLAKE2b-256 checksum How to use checksums |
34dd9e1b2dad3403e473dc55cf4e6d2e9c1617b318d53b61af76ffaa6d53841e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.7.16
|
Security for fistminio 1.0.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.