Azure BlockBlobClient downloadWithResponse проблема размера файла - PullRequest
0 голосов
/ 06 января 2020

Я столкнулся с проблемой, когда размер загружаемого файла больше, чем тот, который хранится в BLOB-объекте azure. Я использую java API. Это проблема, потому что контрольная сумма больше не совпадает, когда загрузка завершена?

Я использую метод BlockBlobClient downloadWithResponse. Я указываю диапазон для загрузки с помощью BlobRange. Нужно ли указывать c с окончательным диапазоном?

например: я загружаю файл 101 Мб. Я выбираю диапазон 10 МБ. Будет ли мой общий объем загруженных файлов 110 МБ?

1 Ответ

0 голосов
/ 09 января 2020

Будет ли мой общий объем загруженных файлов равным 110 МБ?

Диапазон означает диапазон байтов для большого двоичного объекта, если он меньше, чем размер большого двоичного объекта, тогда файл будет неполным, а если больше это только загрузит файл размера капли.

Так что вам не нужно указывать диапазон, вы можете использовать свойство blob BlobSize, Long.MAX_VALUE или null, все они могут загрузить полный BLOB-объект.

И в мой тест все мои файлы завершены, поэтому, пожалуйста, предоставьте свой код, чтобы я мог пройти тест, а ниже мой тест с null rage. Передача нулевого значения в качестве значения BlobRange по умолчанию для всего диапазона BLOB-объекта.

        BlobServiceClient blobServiceClient = new BlobServiceClientBuilder().connectionString(connectStr).buildClient();

        BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient("test");

        String fileName ="blob.jpg";
        BlobClient blobClient = containerClient.getBlobClient(fileName);

        //long dataSize = blobClient.getProperties().getBlobSize();
        //BlobRange range = new BlobRange(0, dataSize);

        OutputStream  outputStream = new FileOutputStream("E:\\"+fileName);

        DownloadRetryOptions options = new DownloadRetryOptions().setMaxRetryRequests(5);
        blobClient.downloadWithResponse(outputStream,null,options,null,false,null,null);
...