【Azure 存储服务】Azure Blob上传大文件(600MB)出现内存溢出情况(Java SDK)

问题描述

Java 云端开发,调用 blob 上传会产生内存溢出,Java上调用的方式如下:

InputStream inputStream = new BufferedInputStream(new FileInputStream(file));

CloudBlockBlob blob = container.getBlockBlobReference(desBlob);

blob.setStreamWriteSizeInBytes(50*1024);

blob.upload(inputStream, fileLength);

 

解决问题

本地测试,上传文件60M是可以正常上传,但上传600M会引起内存溢出,而且是必现的。所以猜想是不是SDK的问题呢?在升级Java SDK版本后,问题消失。

升级后的SDK版本为8.3.0

    <dependency>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-storage</artifactId>
      <version>8.3.0</version>
    </dependency>

 

参考资料

将 blob 上传到容器中https://docs.azure.cn/zh-cn/storage/blobs/storage-quickstart-blobs-java-legacy#upload-blobs-to-the-container

 

posted @ 2021-04-08 17:20  路边两盏灯  阅读(273)  评论(0编辑  收藏  举报