如何在准备好Excel文件后立即将其上传到Azure Blob存储而不保存在本地?

问题描述 投票:0回答:1

我正在使用 Java、Azure SDK 和 Apache POI。我的要求是使用 Apache POI 准备一个 excel 并将其上传到 Azure blob 存储。但我不应该在上传之前将 Excel 文件存储在本地。有什么解决办法吗?

java azure
1个回答
0
投票

网上查了一下,发现

CloudBlockBlob.openOutputStream()
可以和
ByteArrayOutputStream
结合使用,上传excel文件而不需要保存在本地。

下面这段代码可以给出一个想法:

ByteArrayOutputStream baos = new ByteArrayOutputStream();

// write ByteArrayOutputStream to work book
workbook.write(baos);
// get destination cloud blob directory for the archive
CloudBlobDirectory destCloudBlobDirectory = container
    .getDirectoryReference("Some Directory");

// get destination cloud block blob with reference to the source blob
CloudBlockBlob destCloudBlockBlob = destCloudBlobDirectory
    .getBlockBlobReference("fileName");

// open blob output stream
BlobOutputStream blobOutputStream = destCloudBlockBlob.openOutputStream();

destCloudBlockBlob.getProperties().setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
© www.soinside.com 2019 - 2024. All rights reserved.