你当前正在访问 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) | 产品文档

入门

安装包

使用 NuGet 安装适用于 .NET 的 Microsoft Purview Share 客户端库:

dotnet add package Azure.Analytics.Purview.Sharing --prerelease

先决条件

验证客户端

使用 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 开放源代码行为准则。 有关详细信息,请参阅行为准则常见问题解答,或如果有任何其他问题或意见,请与 联系。

曝光数