Значение MD5 загружаемого файла

Я пытаюсь извлечь MD5 и длину (размер) большого двоичного объекта загрузки, используя функцию Azure с помощью Http Trigger. Ниже кода, который я экспериментирую, но я всегда получаю значение null и -1. Пожалуйста, подтвердите, что код правильный или доступен любой другой вариант


public static async Task<IActionResult> Run(HttpRequest req,string inputBlob, ILogger log)
{
    log.LogInformation("C# HTTP trigger function processed a request.");

    string name = req.Query["name"];
    log.LogInformation($"name,{inputBlob}");
    log.LogInformation("Blob content: " + inputBlob.Properties.Length); //This is printing content of blob


    CloudBlockBlob blob;
   var credentials = new StorageCredentials("xxx", "xxxx");
   var client = new CloudBlobClient(new Uri("https://xxx.blob.core.windows.net"), credentials);
    var container = client.GetContainerReference("parent");
    blob = container.GetBlockBlobReference("file.csv");
    log.LogInformation("Blob details: " + blob.Properties.Length); //This is printing -1, if i provide ContentMD5 its showing null. Bascially its not able to read the blob 



    string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
    dynamic data = JsonConvert.DeserializeObject(requestBody);
    name = name ?? data?.name;

    return name != null
        ? (ActionResult)new OkObjectResult($"Hello, {name}")
        : new BadRequestObjectResult("Please pass a name on the query string or in the request body");
}

Если ответ работает для вас, пожалуйста, помогите отметить его как ответ. Спасибо.

Ivan Yang 01.05.2019 10:26
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
1
191
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам не хватает метода FetchAttributesAsync() (или FetchAttributes()), прежде чем вы попытаетесь получить какие-либо свойства большого двоичного объекта.

//your other code
blob = container.GetBlockBlobReference("file.csv");
blob.FetchAttributesAsync()(); //or FetchAttributes()

//then you can try to get any property here.

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

sathishkumar kandhaswamy 11.04.2019 13:28

@sathishkumarkandhaswamy, можешь взглянуть на REST API Azure Data Lake Store 2-го поколения? Если у вас есть какие-либо проблемы, пожалуйста, дайте мне знать.

Ivan Yang 12.04.2019 10:29

@sathishkumarkandhaswamy, я привожу пример того, как использовать API-интерфейс Gen2 для получения этих свойств, в другом вашем вопрос

Ivan Yang 15.04.2019 11:59

Другие вопросы по теме

Как использовать OpenPGP для расшифровки одного большого двоичного объекта в другой
Какой метод хранилища Azure лучше всего подходит для передачи временных файлов?
Перемещение данных Azure больше не работает
Файловое хранилище Azure сопоставлено с Win10, так как сетевой диск запрашивает вход после перезагрузки
Как использовать хранилище CloudBlobDirectory
Будут ли у меня простои или задержки при обновлении хранилища до учетной записи хранения общего назначения версии 2?
Как получить размер CloudBlockBlob, который я только что скопировал в учетную запись хранения Azure?
Azure: WebContentNotFound на странице обновления SPA, развернутой как статический веб-сайт больших двоичных объектов Azure с CDN
SignedVersion в токене SAS неправильно генерируется из шаблона ARM
В лазури, используя службу, я мог получить изображение, но в предварительном просмотре вижу только прямое изображение