Как получить MD5 из файла, хранящегося в ADLS Gen2? - PullRequest
0 голосов
/ 11 апреля 2019

Я получаю ежедневные файлы через sFTP в учетную запись хранения ADLS gen 2. Мне нужно проверить файл, проверив MD5 файла, хранящегося в ADLS gen2.

Я пытался использовать BLOB API, в настоящее время он не поддерживает ADLS gen2. Мне удалось получить Content MD5 из свойств BLOB-объектов, если файл хранится в хранилище BLOB-объектов.

Может кто-нибудь помочь как получить контент MD5 из ADLS gen 2?

1 Ответ

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

На данный момент, как вы знаете, Blob api не поддерживается, но вы можете взглянуть на Data Lake Storage Gen2 rest api -> Path - Get Properties , который можно использовать для получения свойств файлов, хранящихся в ADLS Gen2.

Вот пример кода (обратите внимание, что я использую токен sas, добавленный к URL-адресу API):

using System;
using System.Net;

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {
            string sasToken = "?sv=2018-03-28&ss=b&srt=sco&sp=rwdl&st=2019-04-15T08%3A07%3A49Z&se=2019-04-16T08%3A07%3A49Z&sig=xxxx";
            string url = "https://xxxx.dfs.core.windows.net/myfilesys1/app.JPG" + sasToken;
            var req = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
            req.Method = "HEAD";
            var res = (HttpWebResponse)req.GetResponse();

            Console.WriteLine("the status code is: "+res.StatusCode);

            var headers = res.Headers;
            Console.WriteLine("the count of the headers is: "+headers.Count);
            Console.WriteLine("*********");
            Console.WriteLine();

            //list all the properties if you don't know which correct format of property.
            foreach (var h in headers.Keys)
            {
                Console.WriteLine(h.ToString());
            }
            Console.WriteLine("*********");
            Console.WriteLine();

            //take the Content-Type property for example.
            var myheader = res.GetResponseHeader("Content-Type");
            Console.WriteLine($"the header Content-Type is: {myheader}");

            Console.ReadLine();
        }
    }
}

Результат:

enter image description here

Если вы не знаете, как создать токен sas, вы можете перейти на портал Azure -> свою учетную запись хранения, а затем сделать снимок экрана ниже:

enter image description here

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