你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 .NET 的 Azure Purview 共享客户端库 - 版本 1.0.0-beta.3
Microsoft Purview 数据共享允许从组织内部和跨组织之间的Azure Data Lake Storage Gen2和 Azure 存储帐户就地共享数据。
数据提供程序可以使用Microsoft Purview 数据共享直接与其他用户和合作伙伴共享其数据, (称为数据使用者) ,而不会重复数据,同时在 Microsoft Purview 中集中管理其共享活动。
对于数据使用者,Microsoft Purview 数据共享提供对提供程序与其共享的数据的准实时访问。
Microsoft Purview 数据共享提供的主要功能包括:
- 在组织内部共享数据,或者与组织外部的合作伙伴和客户(在同一 Azure 租户中或跨不同 Azure 租户)共享数据。
- 就地共享 ADLS Gen2 或 Blob 存储中的数据,而无需复制数据。
- 与多个接收方共享数据。
- 准实时访问共享的数据。
- 管理共享关系,并跟踪每个 ADLSGen2 或 Blob 存储帐户与谁共享/从谁共享数据。
- 随时终止共享访问。
- 通过 Microsoft Purview 治理门户或 REST API 使用灵活的体验。
请访问以下资源,了解有关此产品的详细信息。
入门
安装包
使用 NuGet 安装适用于 .NET 的 Microsoft Purview Share 客户端库:
dotnet add package Azure.Analytics.Purview.Sharing --prerelease
先决条件
- 必须具有 Azure 订阅 和 Purview 资源 才能使用此包。
验证客户端
使用 Azure Active Directory
此示例演示如何使用 DefaultAzureCredential 通过 Azure Active Directory 进行身份验证。 但是,将接受 Azure.Identity 提供的任何凭据。 有关其他凭据的详细信息,请参阅 Azure.Identity 文档。
选择并配置凭据后,可以创建 的 SentSharesClient
实例。
关键概念
数据提供程序: 数据提供程序是通过选择数据源、选择要共享的文件和文件夹以及与其共享的人员来创建共享的个人。 然后,Microsoft Purview 向每个数据使用者发送邀请。
数据使用者: 数据使用者是通过在其自己的 Azure 订阅中指定用于访问共享数据的目标存储帐户来接受邀请的个人。
协议方法
适用于 .NET 的 Purview Share 客户端库公开的操作使用 协议方法来 公开基础 REST 操作。 可以在 文档中详细了解如何使用使用协议方法的 Azure SDK 客户端。
线程安全
我们保证所有客户端实例方法都是线程安全的,并且彼此独立 (准则) 。 这可确保重用客户端实例的建议始终是安全的,即使在线程之间也是如此。
其他概念
客户端选项 | 访问响应 | 长时间运行的操作 | 处理失败 | 诊断 | 嘲笑 | 客户端生存期
##Examples
数据提供程序示例
以下代码示例演示了数据提供程序如何使用 Microsoft Azure Java SDK for Purview Sharing 来管理其共享活动。
创建已发送的共享客户端
var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);
创建已发送共享
var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);
var data = new
{
shareKind = "InPlace",
properties = new
{
artifact = new
{
storeKind = "AdlsGen2Account",
storeReference = new
{
referenceName = "/subscriptions/subscriptionId/resourceGroups/resourceGroup/providers/Microsoft.Storage/storageAccounts/sharerStorageAccount",
type = "ArmResourceReference"
},
properties = new
{
paths = new[]
{
new
{
containerName = "containerName",
senderPath = "senderPath",
receiverPath = "receiverPath"
}
}
}
},
displayName = "displayName",
description = "description",
}
};
Operation<BinaryData> createResponse = await sentShareClient.CreateOrReplaceSentShareAsync(WaitUntil.Completed, "sentShareId", RequestContent.Create(data));
获取已发送的共享
创建发送的共享后,数据提供程序可以检索它。
var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);
Response response = await sentShareClient.GetSentShareAsync("sentShareId");
列出已发送的共享
数据提供程序还可以检索他们已创建的已发送共享的列表。
var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);
List<BinaryData> response = await sentShareClient.GetAllSentSharesAsync("referenceName").ToEnumerableAsync();
创建用户的共享邀请
创建已发送的共享后,数据提供程序可以将邀请扩展到随后可以查看共享数据的使用者。 在此示例中,通过指定个人的电子邮件地址将邀请扩展到个人。
var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);
var data = new
{
invitationKind = "User",
properties = new
{
TargetEmail = "receiver@microsoft.com",
Notify = true,
}
};
Response response = await sentShareClient.CreateSentShareInvitationAsync("sentShareId", "sentShareInvitationId", RequestContent.Create(data));
创建服务共享邀请
数据提供程序还可以通过指定服务的租户 ID 和对象 ID,将邀请扩展到服务或应用程序。 用于向服务发送邀请的对象 ID 必须是与企业应用程序关联的对象 ID, (而不是应用程序注册) 。
var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);
var data = new
{
invitationKind = "Service",
properties = new
{
TargetActiveDirectoryId = "targetActiveDirectoryId",
TargetObjectId = "targetObjectId",
}
};
Response response = await sentShareClient.CreateSentShareInvitationAsync("sentShareId", "sentShareInvitationId", RequestContent.Create(data));
获取已发送的共享邀请
创建发送的共享邀请后,数据提供程序可以检索它。
var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);
Response response = await sentShareClient.GetSentShareInvitationAsync("sentShareId", "sentShareInvitationId");
列出已发送的共享邀请
数据提供程序还可以检索其创建的已发送共享邀请的列表。
var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);
List<BinaryData> sentShareInvitations = await sentShareClient.GetAllSentShareInvitationsAsync("sentShareId").ToEnumerableAsync();
删除已发送的共享邀请
数据提供程序还可以检索其创建的已发送共享邀请的列表。
var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);
Operation operation = await sentShareClient.DeleteSentShareInvitationAsync(WaitUntil.Completed, "sentShareId", "sentShareInvitationId");
删除已发送的共享
数据提供程序可以删除已发送的共享,以停止与所有数据使用者共享其数据。
var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var sentShareClient = new SentSharesClient(endPoint, credential);
Operation operation = await sentShareClient.DeleteSentShareAsync(WaitUntil.Completed, "sentShareId");
数据使用者示例
以下代码示例演示数据使用者如何使用 Microsoft Azure Java SDK for Purview Sharing 来管理其共享活动。
创建接收共享客户端
var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var receivedSharesClient = new ReceivedSharesClient(endPoint, credential);
列出已分离的已接收共享
若要开始查看与其共享的数据,数据使用者必须首先检索已分离的已接收共享的列表。 在此列表中,他们可以标识要附加的已分离的已接收共享。
var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var receivedSharesClient = new ReceivedSharesClient(endPoint, credential);
List<BinaryData> createResponse = await receivedSharesClient.GetAllDetachedReceivedSharesAsync().ToEnumerableAsync();
附加收到的共享
数据使用者标识接收的共享后,可以将收到的共享附加到可以访问共享数据的位置。 如果已附加接收的共享,则将在指定的新位置访问共享数据。
var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var receivedSharesClient = new ReceivedSharesClient(endPoint, credential);
var data = new
{
shareKind = "InPlace",
properties = new
{
sink = new
{
storeKind = "AdlsGen2Account",
storeReference = new
{
referenceName = "/subscriptions/suscriptionId/resourceGroups/resourceGroup/providers/Microsoft.Storage/storageAccounts/receiverStorageAccount",
type = "ArmResourceReference"
},
properties = new
{
containerName = "containerName",
folder = "folder",
mountPath = "mountPath",
}
},
displayName = "displayName",
}
};
Operation<BinaryData> createResponse = await receivedSharesClient.CreateOrReplaceReceivedShareAsync(WaitUntil.Completed, "receivedShareId", RequestContent.Create(data));
获取收到的共享
数据使用者可以检索单个接收的共享。
var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var receivedSharesClient = new ReceivedSharesClient(endPoint, credential);
Response operation = await receivedSharesClient.GetReceivedShareAsync("receivedShareId");
列出附加的已接收共享
数据使用者还可以检索其附加的已接收共享的列表。
var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var receivedSharesClient = new ReceivedSharesClient(endPoint, credential);
List<BinaryData> createResponse = await receivedSharesClient.GetAllAttachedReceivedSharesAsync("referenceName").ToEnumerableAsync();
删除收到的共享
数据使用者还可以检索其附加的已接收共享的列表。
var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var receivedSharesClient = new ReceivedSharesClient(endPoint, credential);
Operation operation = await receivedSharesClient.DeleteReceivedShareAsync(WaitUntil.Completed, "receivedShareId");
Share Resouce 示例
以下代码示例演示如何使用用于 Purview 共享的 Microsoft Azure Java SDK 查看共享资源。 共享资源是提供程序共享数据的基础资源,或者使用者在其中附加与其共享的数据的目标。
列出共享资源
可以检索共享资源列表,以查看发生共享活动的帐户中的所有资源。
var credential = new DefaultAzureCredential();
var endPoint = new Uri("https://my-account-name.purview.azure.com/share");
var shareResourcesClient = new ShareResourcesClient(endPoint, credential);
List<BinaryData> createResponse = await shareResourcesClient.GetAllShareResourcesAsync().ToEnumerableAsync();
疑难解答
设置控制台日志记录
查看日志的最简单方法是启用控制台日志记录。 若要创建将消息输出到控制台的 Azure SDK 日志侦听器,请使用 AzureEventSourceListener.CreateConsoleLogger 方法。
// Setup a listener to monitor logged events.
using AzureEventSourceListener listener = AzureEventSourceListener.CreateConsoleLogger();
若要了解有关其他日志记录机制的详细信息,请参阅 此处。
后续步骤
此客户端 SDK 使用 协议方法公开操作,可以在 文档中详细了解如何使用使用协议方法的 SDK 客户端。
供稿
有关构建、测试和参与此库的详细信息,请参阅 CONTRIBUTING.md 。
本项目欢迎贡献和建议。 大多数贡献要求你同意贡献者许可协议 (CLA),并声明你有权(并且确实有权)授予我们使用你的贡献的权利。 有关详细信息,请访问 cla.microsoft.com。
提交拉取请求时,CLA 机器人将自动确定你是否需要提供 CLA,并相应地修饰 PR(例如标签、注释)。 直接按机器人提供的说明操作。 只需使用 CLA 对所有存储库执行一次这样的操作。
此项目采用了 Microsoft 开放源代码行为准则。 有关详细信息,请参阅行为准则常见问题解答,或如果有任何其他问题或意见,请与 联系。