FIST MinIO Client SDK for Python
Project description
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)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fistminio-1.0.5.tar.gz.
File metadata
- Download URL: fistminio-1.0.5.tar.gz
- Upload date:
- Size: 10.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4bfabd56944242156d7e5799ff55ee19a0399541592c3b547104b54a2e99b70
|
|
| MD5 |
3d45c4902c71546fe01aca1e033b23ad
|
|
| BLAKE2b-256 |
a326d4fe4864d66a8fba73985a84600685fdd8cd96ac2dab4c32e494fcb5d35b
|
File details
Details for the file fistminio-1.0.5-py3-none-any.whl.
File metadata
- Download URL: fistminio-1.0.5-py3-none-any.whl
- Upload date:
- Size: 10.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a45e51f6045c8a0b542db52aab61ebed49bbca509d9007fe8d278a3e00a61f08
|
|
| MD5 |
8458fcd874197633b45b8fc0954a675d
|
|
| BLAKE2b-256 |
34dd9e1b2dad3403e473dc55cf4e6d2e9c1617b318d53b61af76ffaa6d53841e
|