问题描述
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