当前位置: 首页 > 面试题库 >

是否可以在不预先指定流长度的情况下将流上传到Azure blob存储?

华涵意
2023-03-14
问题内容

我不知道它是否相关,但是我正在将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不具有length属性的原因)?


问题答案:

我们将记录功能请求,以启用从流中上传而无需指定长度。现在,您可能需要使用openOutputStream方法,该方法具有一个采用byte
[]或int值的写方法。下面是使用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();


 类似资料:
  • 我正在尝试将GZipStream与MemoryStream一起使用。我写入所需的所有字节,然后关闭gzip流,这样之后我需要从内存流中获取压缩的缓冲区,而无需分配额外内存(方法ToArray返回所需的字节数组,但它创建新的字节数组,然后将缓冲区中的所有字节复制到新数组)。据我所知,我只能使用GetBuffer()返回整个缓冲区,所以在这种情况下,我还有另一个问题:缓冲区末尾的所有零字节是否都不属于

  • 问题内容: 我正在尝试为我的代码编写一些单元测试,这些代码可以连接到SQL Server以实现持久性,但是我希望能够通过将其指向SQL Server实例来运行单元测试,并让测试创建自己的数据库来运行测试,因此在每次测试之后,它都可以删除数据库,然后在设置之前先创建下一个测试,然后再重新创建它,因此我知道之前的测试没有剩余的旧数据或结构会影响下一个测试。 问题答案: 简而言之:不,您不能那样做。您也

  • 问题内容: 我的表单中有一个文件字段。 我希望用户能够选择一个图像,按OK,然后在不提交表单的情况下以较小的调整大小的方式预览图像。如果一切都令用户满意,则单击提交,然后提交图像以及表格… 您优秀的专业人员将如何基本上做到这一点? 谢谢 问题答案: 您需要至少提交一个表格来上传文件并显示它。您可以使用iframe模拟Ajax上传。

  • 我是函数式编程新手,我正在努力变得更好。 目前,我正在试验一些代码,采用以下基本形式: 首先,使用hashmap获取列表中每个数字的频率。下一步,我们总结出地图中作为键存在的键的数量。 我不喜欢的是,这两个流需要彼此分开存在,其中一个HashMap是由一个流生成的,只会被另一个流立即独占地使用。 有没有一种方法可以将其合并为一个流?我是这样想的: 但这里的问题是没有可参考的freq map,因为它

  • 在客户端,我想使用这个endpoint,但不确定如何在主体中传递字符串流(我不想将其设置为列表)

  • 问题内容: 我正在使用Node.js处理Microsoft Bot Framework(在Azure上托管),并且不能在本地保存文件。我具有base64格式的图像数据,并且需要将该数据传输到图像文件的可读流中,可以使用其Blob存储API(采用流)将其泵送到Azure中。 任何帮助,将不胜感激。我不知道如何在不将jpg保存到磁盘的情况下解码base64并从中生成流。 问题答案: 请尝试这样的事情: