Skip to main content

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

fistminio-1.0.5.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

fistminio-1.0.5-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

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

Hashes for fistminio-1.0.5.tar.gz
Algorithm Hash digest
SHA256 a4bfabd56944242156d7e5799ff55ee19a0399541592c3b547104b54a2e99b70
MD5 3d45c4902c71546fe01aca1e033b23ad
BLAKE2b-256 a326d4fe4864d66a8fba73985a84600685fdd8cd96ac2dab4c32e494fcb5d35b

See more details on using hashes here.

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

Hashes for fistminio-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 a45e51f6045c8a0b542db52aab61ebed49bbca509d9007fe8d278a3e00a61f08
MD5 8458fcd874197633b45b8fc0954a675d
BLAKE2b-256 34dd9e1b2dad3403e473dc55cf4e6d2e9c1617b318d53b61af76ffaa6d53841e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page