问题描述

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​

 

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!