是否有一种方法可以从Azure数据湖读取文件。我有文件的Http网址。我想读它直接。我如何实现它,因为我看不到通过SDK来实现此目标的方法。
感谢您的帮助。
问候
您是否勾选了docs
?
docs
您也可以使用public async Task ListFilesInDirectory(DataLakeFileSystemClient fileSystemClient)
{
IAsyncEnumerator<PathItem> enumerator =
fileSystemClient.GetPathsAsync("my-directory").GetAsyncEnumerator();
await enumerator.MoveNextAsync();
PathItem item = enumerator.Current;
while (item != null)
{
Console.WriteLine(item.Name);
if (!await enumerator.MoveNextAsync())
{
break;
}
item = enumerator.Current;
}
}
,
例如,您可以使用sas令牌认证编写以下代码(或也可以使用共享密钥认证):
ADLS Gen2 rest api
如果您知道ADLS Gen2 rest api
,则可以直接使用 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));
//you can specify the Method as per your operation as per the api doc
req.Method = "HEAD";
var res = (HttpWebResponse)req.GetResponse();
从ADLS Gen2读取文件。
首先,安装此nuget软件包:Blob APIs and Data Lake Storage Gen2 APIs can operate on the same data。
请注意,在这种情况下,您应该使用这种类型的URL“ azure blob storage SDK
”,而不是这种类型的URL“ Microsoft.Azure.Storage.Blob, version 11.1.6”。
这里是用于在ADLS Gen2中读取.txt文件的示例代码:
https://xxx.blob.core.windows.net/mycontainer/myfolder/test.txt
测试结果:
https://xxx.dfs.core.windows.net/mycontainer/myfolder/test.txt