gpt4 book ai didi

c# - 在 Azure Functions 中通过 C# 将文件从一个 DataLake Gen2 复制到另一个 DataLake Gen 2

转载 作者:行者123 更新时间:2023-12-03 02:25:08 26 4
gpt4 key购买 nike

我想做一些简单的事情!!!

将 blob 从第二代 dataLake (SourceDataLake) 中的容器 (SourceContainer) 复制到第二个 DatLake (TargetDataLake)通过 Azure Functions 中的 C# 代码。

我的 Azure Function 和 SourceDataLake 之间的连接通过专用链接和专用端点进行保护。

DataLakeDirectoryClient sourcedirectoryClient2 = sourceDataLakeFileSystemClient.GetDirectoryClient(myPath);
DataLakeFileClient sourcefileClient = sourcedirectoryClient2.GetFileClient(myBlobName);
Response<FileDownloadInfo> downloadResponse = await sourcefileClient.ReadAsync(); //I get the error in this line
Stream reader = downloadResponse.Value.Content;

DataLakeDirectoryClient targetdirectoryClient = taregetDataLakeFileSystemClient.GetDirectoryClient(TargetDirectory);
DataLakeFileClient targetfileClient = await targetdirectoryClient.CreateFileAsync(myBlobName);

await targetfileClient.UploadAsync(reader, true);

对于 DataLake 的身份验证,我使用此函数:

public static DataLakeFileSystemClient GetDataLakeFileSystemClient(string containerName, string dataLakeName, string dataLakeAccessKey)
{
StorageSharedKeyCredential storageSharedKeyCredential = new StorageSharedKeyCredential(dataLakeName, dataLakeAccessKey);

DataLakeClientOptions options = new DataLakeClientOptions(DataLakeClientOptions.ServiceVersion.V2019_07_07);
DataLakeServiceClient dataLakeServiceClient = new DataLakeServiceClient(
new Uri(string.Concat("https://", dataLakeName, ".dfs.core.windows.net")),
storageSharedKeyCredential,
options);

DataLakeFileSystemClient dataLakeFileSystemClient = dataLakeServiceClient.GetFileSystemClient(containerName);
return dataLakeFileSystemClient;
}

这段代码对我不起作用。如果我从 SourceDataLake 中删除 Priavet Link Private Endpoint,那么它就可以工作。不知何故,专用链接和专用端点不适用于这行代码:

Response<FileDownloadInfo> downloadResponse = await sourcefileClient.ReadAsync();

您有什么想法可以解决这个问题吗?或者有更好的方法从 DataLake gen2 复制 blob?

最佳答案

抱歉,我无法帮助解决当前问题,但当您询问其他选项时,我认为您可以探索 Azure 数据工厂。 https://learn.microsoft.com/en-us/azure/data-factory/connector-azure-data-lake-storage

关于c# - 在 Azure Functions 中通过 C# 将文件从一个 DataLake Gen2 复制到另一个 DataLake Gen 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67295424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com