【Azure 存储服务】Azure Blob上传大文件(600MB)出现内存溢出情况(Java SDK) - LuBu0505/My-Code GitHub Wiki

问题描述

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

⚠️ **GitHub.com Fallback** ⚠️