minio文件下载存储到excel信息

from minio import Minio
import json
import pandas as pd
import os

def write_excel(name,data):
        data=eval(data)
        name+='.xlsx'
        print(data)
        data = pd.DataFrame(data)
        f=os.path.exists(name)
        if f==False:
                data.to_excel(name, sheet_name='sheet1',index=False)
        else:
                num=len(pd.read_excel(name))
                print(num)
                writer = pd.ExcelWriter(name, mode='a',engine='openpyxl',if_sheet_exists='overlay')
                data.to_excel(excel_writer=writer, sheet_name='sheet1',index=False,startrow=num+1,header=False)
                writer.close()

# 设置连接参数
endpoint = '192.168.1.100:9000' # MinIO服务器地址
access_key = 'minioadmin' # Access Key ID
secret_key = 'minioadmin' # Secret Access Key
secure = False # 若为HTTPS则设置为True,否则设置为False
 
# 初始化MinIO客户端
client = Minio(endpoint, access_key=access_key, secret_key=secret_key, secure=secure)

# 指定存储桶名称
bucket_name = 'imagecache'
 
# 列出存储桶中的所有文件
files = client.list_objects(bucket_name, recursive=True)


#存储文件位置
des_path="D:\\example-data\\"


for file in files:
    print('Object Name:', file.object_name)
    print('Size:', file.size)
    print('Last Modified:', file.last_modified)
    url=client.presigned_get_object(bucket_name,file.object_name)
    print(url)
    download_des = client.fget_object(bucket_name=bucket_name, object_name=file.object_name,file_path=des_path+file.object_name)
    all_data=dict()
    all_data['title']=[file.object_name]
    all_data['url']=[url]
    all_data['download_des']=[des_path+file.object_name]
    all_data=json.dumps(all_data)
    write_excel('data',all_data)

Minio是一个开源的对象存储服务,主要用于提供文件存储和访问。如果你想从Minio下载Excel文件并将内容转换为集合对象,通常需要以下步骤: 1. **安装依赖**: - 首先,你需要一个支持HTTP客户端的编程语言,如Python、Java等。如果你选择Python,可以使用`requests`库;如果选择Java,可以使用`minio-java`库。 2. **连接到Minio**: 使用相应的库创建连接,设置访问凭证(包括access key和secret key),以及bucket和对象(Excel文件)的名称。 ```python (示例)** import requests url = "http://your-minio-server-url" access_key = 'your-access-key' secret_key = 'your-secret-key' response = requests.get( f"{url}/buckets/{bucket_name}/{file_name}", auth=(access_key, secret_key), stream=True ) ``` ```java (示例)** MinioClient client = new MinioClient("https://your-minio-server-url", "your-access-key", "your-secret-key"); InputStream is = client.getObject(bucketName, fileName).getObjectContent(); ``` 3. **读取Excel内容**: 将下载的流数据传递给能处理Excel的库,比如Python的`pandas`库,Java有`Apache POI`库。 ```python (示例)** import pandas as pd data_df = pd.read_excel(is, engine='xlrd') collection = data_df.to_dict(orient='records') # 转换为列表的字典 ``` ```java (示例)** XSSFWorkbook workbook = new XSSFWorkbook(is); List<Map<String, Object>> collection = new ArrayList<>(); for (Sheet sheet : workbook.getSheets()) { Iterator<Row> iterator = sheet.iterator(); while (iterator.hasNext()) { Row row = iterator.next(); Map<String, Cell> rowData = new HashMap<>(); for (Cell cell : row) { rowData.put(cell.getCellType() + "", cell.toString()); } collection.add(rowData); } } ``` 4. **处理结果**: 现在你有了一个包含Excel数据的集合,可以根据需要进一步操作它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值