Я пытаюсь извлечь 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");
}
Вам не хватает метода 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?
@sathishkumarkandhaswamy, можешь взглянуть на REST API Azure Data Lake Store 2-го поколения? Если у вас есть какие-либо проблемы, пожалуйста, дайте мне знать.
@sathishkumarkandhaswamy, я привожу пример того, как использовать API-интерфейс Gen2 для получения этих свойств, в другом вашем вопрос
Если ответ работает для вас, пожалуйста, помогите отметить его как ответ. Спасибо.