MD5 значение загружаемого файла - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь извлечь MD5 и длину (размер) BLOB-объекта загрузки с помощью функции Azure с использованием Http Trigger. Ниже я экспериментирую с кодом, но всегда получаю ноль и -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");
}

1 Ответ

0 голосов
/ 09 апреля 2019

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

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

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