IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python minio文件以及流的上传下载 -> 正文阅读

[Python知识库]python minio文件以及流的上传下载

作者:treeSkill

1、 pip安装minio

pip3 install minio

2、 服务器启动minio

export MINIO_ACCESS_KEY="test"
export MINIO_SECRET_KEY="12345678"
./minio server --address localhost:9900 ./data

3、 测试

"""
    mini_store.py
    ~~~~~~~~~

    web server,定义前端调用接口

    :date: 2020-02-14 14:36:00
    :author:
"""
from minio import Minio
from minio.error import S3Error
import io
import uuid 
class MinioStore:

    def __init__(self,host,access_key,secret_key,bucket,model_dirs):
        self.host=host
        self.access_key=access_key
        self.secret_key=secret_key
        self.secure=False
        self.bucket=bucket
        self.model_dirs=model_dirs
        self.client = Minio(
            self.host,
            secure=self.secure,
            access_key=self.access_key,
            secret_key=self.secret_key,
        )
    def __new__(cls, *args, **kw):
        '''
        启用单例模式
        :param args:
        :param kw:
        :return:
        '''
        if not hasattr(cls, '_instance'):
            cls._instance = object.__new__(cls)
        return cls._instance
    def get_object(self,file_name):
       
        #self.bucket ="rasamodels"
        found = self.client.bucket_exists(self.bucket)
        if not found:
            self.client.make_bucket(self.bucket)
            print('create {} success'.format(self.bucket))
        
        
        model_file=self.model_dirs+file_name
        data=self.client.get_object(
            self.bucket, file_name )

        with open(model_file, 'wb') as f:
            for d in data:
                f.write(d)
        return model_file

    def put_object(self,object_name,raw_data,raw_size):
        
        #self.bucket ="rasamodels"
        found = self.client.bucket_exists(self.bucket)
        if not found:
            self.client.make_bucket(self.bucket)
            print('create {} sucess!'.format(self.bucket))
        
         

        return self.client.put_object(
            self.bucket, object_name, raw_data,raw_size
        )
        
    def fget_object(self,object_name,file_name):
        self.client.fget_object(
            self.bucket, object_name,file_name )
    
    def fput_object(self,object_name,file_name):
        self.client.fput_object(
            self.bucket, object_name,file_name )


if __name__ == '__main__':
   
   miniostore_= MinioStore("127.0.0.1:9900","test","test123456","rasamodels","/home/huangqh/rasa3/models/")
   print(miniostore_.put_object("helloworld",io.BytesIO(b"Hello world !"), 12))
   print(miniostore_.get_object("helloworld"))
   miniostore_.fget_object("helloworld","a.txt")
   miniostore_.fput_object("test1","file.txt")
   miniostore_.fget_object("test1","file_1.txt")

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 16:08:24  更:2022-03-03 16:10:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/31 5:10:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码