【问题标题】:Upload multiple blobs to Azure Storage将多个 Blob 上传到 Azure 存储
【发布时间】:2020-08-01 19:19:05
【问题描述】:

我有以下代码可以使用 azure-storage-blob 12.5.0 将单个 blob 上传到 Azure 存储。

有没有办法传递字节数组的集合并以某种批量上传的方式进行?

    public void store(final String blobPath, final String originalFileName, final byte[] bytes) {
        final BlobClient blobClient = containerClient.getBlobClient(blobPath);
        final BlockBlobClient blockBlobClient = blobClient.getBlockBlobClient();
        try (ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes)) {
            blockBlobClient.upload(inputStream, bytes.length, true);
        } catch (BlobStorageException | IOException exc) {
            throw new StorageException(exc);
        }
    }

【问题讨论】:

    标签: java azure azure-storage


    【解决方案1】:

    有什么方法可以传递字节数组的集合并在一些 那种批量上传?

    在V8 sdk中,我发现uploadFromByteArray方法支持byte[]参数。

    CloudBlockBlob blob = container.getBlockBlobReference("helloV8.txt");
    
    String str1 = "132";
    String str2 = "asd";
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    os.write(str1.getBytes());
    os.write(str2.getBytes());
    byte[] byteArray = os.toByteArray();
    blob.uploadFromByteArray(byteArray, 0, byteArray.length);
    

    测试:

    在V12 sdk中找不到这种方法,只有你在问题中使用的upload方法。实际上,在上面的uploadFromByteArray方法里面,它也是upload方法。

    如果你指的是批量上传多个blob,恐怕官方sdk不支持,除了使用for循环。关于批量写入,你可以参考这里提到的Azure CLI和AzCopy场景document.

    【讨论】:

      猜你喜欢
      • 2011-10-12
      • 2023-03-28
      • 2019-05-26
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 2021-10-13
      • 2018-12-17
      相关资源
      最近更新 更多