根据minio地址,下载文件流

下载文件转流一

public void downloadPdf(HttpServletResponse response) {
    try {
        String fileName = minioPdfConfig.getFileName();

        response.setContentType("application/pdf");
        response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
// 拼写文件下载信息
        String downloadApi = String.format(ChinaTowerApiConstants.FILE_DOWNLOAD,
                minioPdfConfig.getBucketName(), fileName);
// 下载文件并转成字节
        byte[] buffer = HttpUtil.downloadBytes(chinaTowerConfig.getMinioUrl() + downloadApi);

        // 清空response
        response.reset();
        try {
            OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
            toClient.write(buffer);
            toClient.flush();
            toClient.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    } catch (Exception e) {
        e.printStackTrace();
        throw new BaseException(e.getMessage());
    }
}

下载文件转流2

    public void downloadPdf(HttpServletResponse httpServletResponse) throws IOException {
        RequestBody emptyRequestBody = RequestBody.create(null, new byte[0]);
        OkHttpClient okHttpClient = new OkHttpClient();
        String fileName = minioPdfConfig.getFileName();
        String downloadApi = String.format("/ChinatowerFile/download/%s/%s",
                minioPdfConfig.getBucketName(), fileName);
        // return chinaTowerConfig.getMinioUrl() + downloadApi;
        Request request = new Request.Builder().url(chinaTowerConfig.getMinioUrl()+downloadApi).post(emptyRequestBody).build();
        Response response = okHttpClient.newCall(request).execute();
        if(200 != response.code()){
            throw new BaseException("文件下载失败");
        }
        InputStream inputStream = response.body().byteStream();
        // 创建 ByteArrayOutputStream 用于收集所有读取的字节
        ServletOutputStream outputStream = httpServletResponse.getOutputStream();
        byte[] buffer = new byte[1024];
        int bytesRead;
        // 读取 InputStream 并写入 ByteArrayOutputStream
        while ((bytesRead = inputStream.read(buffer)) != -1) {
            outputStream.write(buffer, 0, bytesRead);
        }
    }

直接返回url下载

    public String downloadPdf() {
        String fileName = minioPdfConfig.getFileName();
        String downloadApi = String.format("/ChinatowerFile/download/%s/%s",
                minioPdfConfig.getBucketName(), fileName);
        return chinaTowerConfig.getMinioUrl() + downloadApi;
    }

Java中获取MinIO服务器上的TIFF文件,你需要先确定你的MinIO服务的URL、访问密钥和密钥。以下是一般步骤: 1. 添加MinIO Java客户端SDK依赖到你的项目中,确保可以通过这个库来与MinIO服务交互。 2. 创建一个MinIO客户端实例,使用你的服务URL、访问密钥和密钥。 3. 使用客户端实例定位到你的桶(Bucket)中的特定TIFF文件。 4. 使用适当的API方法从MinIO获取文件。 以下是一个示例代码,说明如何实现上述步骤: ```java import io.minio.*; import io.minio.messages.Bucket; import java.io.InputStream; import java.util.List; public class MinioClientExample { public static void main(String[] args) { try { // 创建MinIO客户端实例。 MinioClient minioClient = MinioClient.builder() .endpoint("https://play.min.io") // MinIO服务的URL .credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG") // 访问密钥和密钥 .build(); // 检查桶是否存在于服务中。 boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket("my-bucket-name").build()); if (found) { System.out.println("Bucket found"); // 获取文件。 InputStream fileStream = minioClient.getObject( GetObjectArgs.builder().bucket("my-bucket-name").object("my-object-name.tiff").build()); // 在这里你可以使用fileStream进行你需要的文件操作。 } else { System.out.println("Bucket not found."); } } catch (Exception e) { e.printStackTrace(); } } } ``` 这个例子中,你需要将`play.min.io`替换为你的MinIO服务器地址,将`my-bucket-name`替换为你的桶名,将`my-object-name.tiff`替换为你想获取的TIFF文件名,将`Q3AM3UQ867SPQQA43P2F`和`zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG`替换为你的访问密钥和密钥。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值