gpt4 book ai didi

java - 我可以将流上传到 Azure Blob 存储而不预先指定其长度吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:55:26 25 4
gpt4 key购买 nike

我不知道它是否相关,但我使用 Java 和 azure-storage-android-0.2.0.aar 进行上传。

我可以将文件上传到 Microsoft Azure blob 存储

CloudBlockBlob blob = container.getBlockBlobReference("filename.ext");
blob.upload(inputStream, n);

其中 n 是从文件派生的 inputStream 的长度。

这是我的问题:我想直接进行流式传输,例如从摄像头进行流式传输,这显然是不可能的,因为 Azure 需要上传的长度参数,而在流式传输时该参数是未知的。

我需要指定长度有什么原因吗? (MD5?)有没有办法在流仍在生成时上传(这显然是Java中InputStream的思想,这也是InputStream没有长度属性的原因)?

最佳答案

我们将记录功能请求,以启用从流上传而不指定长度。现在,您可能想要使用 openOutputStream 方法,该方法有一个采用 byte[] 或 int 的 write 方法。使用 int 方法的示例如下:

    CloudBlockBlob blockBlob = container.getBlockBlobReference(‘myblob’); // assuming container was already created

BlobOutputStream blobOutputStream = blockBlob.openOutputStream();
ByteArrayInputStream inputStream = new ByteArrayInputStream(buffer); // assuming buffer is a byte[] with your data

int next = inputStream.read();
while (next != -1) {
blobOutputStream.write(next);
next = inputStream.read();
}

blobOutputStream.close();

关于java - 我可以将流上传到 Azure Blob 存储而不预先指定其长度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24618545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com