Java 阿里云OSS获取InputStream

该代码段展示了如何使用阿里云OSS客户端从对象存储中获取文件,将其内容读取为字节数组,并最终转换为`ByteArrayInputStream`返回。这个过程涉及关键操作如初始化OSSClient,调用getObject方法,以及处理输入流的转换。
摘要由CSDN通过智能技术生成
public static InputStream getFileInputStream(String filePath) throws IOException {
    // 创建OSSClient实例。
    OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
    OSSObject ossObject = ossClient.getObject(bucketName, filePath);
    try {
	    InputStream out = ossObject.getObjectContent();
        byte[] bytes = toByteArray(out);
        return new ByteArrayInputStream(bytes);
    }finally {
        ossClient.shutdown();
    }
}
/**
* InputStream流转byte数组
*
* @param input
* @return
* @throws IOException
*/
public static byte[] toByteArray(InputStream input) throws IOException {
   ByteArrayOutputStream output = new ByteArrayOutputStream();
   byte[] buffer = new byte[input.available()];
   int n = 0;
   while (-1 != (n = input.read(buffer))) {
       output.write(buffer, 0, n);
   }
   return output.toByteArray();
}
以下是一些可能用到的代码片段: 1. 从OSS获取Excel文件: ```java // 初始化OSS客户端 OSSClient ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); // 获取Excel文件流 OSSObject ossObject = ossClient.getObject(bucketName, objectName); InputStream inputStream = ossObject.getObjectContent(); ``` 2. 解析Excel文件: ```java // 创建工作簿 Workbook workbook = WorkbookFactory.create(inputStream); // 获取第一个工作表 Sheet sheet = workbook.getSheetAt(0); // 遍历工作表中的每一行 for (Row row : sheet) { // 获取每一行中的每一个单元格 for (Cell cell : row) { // 处理单元格的数据 String value = cell.getStringCellValue(); // ... } } ``` 3. 连接MySQL数据库: ```java // 加载MySQL驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 建立数据库连接 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password"); ``` 4. 将数据插入MySQL数据库: ```java // 创建PreparedStatement对象 PreparedStatement pstmt = conn.prepareStatement("INSERT INTO mytable (column1, column2, ...) VALUES (?, ?, ...)"); // 设置参数 pstmt.setString(1, value1); pstmt.setInt(2, value2); // ... // 执行SQL语句 pstmt.executeUpdate(); ``` 通过组合以上代码片段,您应该能够完成从OSS存储的Excel文件中读取数据并将其导入MySQL数据库的任务。请注意,此代码仅提供了一些基本的代码片段,实际应用中可能需要进行更多的空值检查、异常处理等操作。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值