Загрузите несколько BLOB-объектов в Azure Storage - PullRequest
1 голос
/ 19 апреля 2020

У меня есть следующий код для загрузки одного большого двоичного объекта в azure хранилище с использованием azure-storage-blob 12.5.0.

Есть ли способ передать коллекцию байтовых массивов и сделать это в какой-то пакетной загрузке?

    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);
        }
    }

1 Ответ

1 голос
/ 20 апреля 2020

Есть ли способ передать коллекцию байтовых массивов и сделать это в какой-то пакетной загрузке?

В 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);

Тест:

enter image description here

Такой метод не найден в V12 SDK, только upload метод, который вы используется в вашем вопросе. На самом деле, в выше uploadFromByteArray метод внутри, это также upload метод.

enter image description here

Если вы имеете в виду загрузить несколько больших двоичных объектов в пакете, я боюсь, что он не поддерживается в официальном SDK, за исключением использования for l oop. Что касается массовой записи, вы можете обратиться к Azure CLI и AzCopy ios, упомянутым в этот документ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...