Azure 数据工厂在自定义活动中使用 sas 令牌获取 Blob 路径



我正在尝试在 Azure 数据工厂中生成一个自定义活动,该活动获取 Blob 作为输入数据集,并希望将此 Blob 的 sas 令牌路径传递给需要此类路径的 API。

有没有办法在自定义活动中使用 sas 令牌获取 blob 的路径?

我想出了一个办法。ADF v1 中自定义活动的一部分是具有上下文参数的执行方法。从该上下文中,可以获取 Blob 存储的连接字符串和 Blob 的路径,然后可以提取 sas 令牌,如下所示:

public override IDictionary<string, string> Execute(
AOMDotNetActivityContext context,
IActivityLogger logger)
{
    string blobConnectionString = context.ConnectionString;
    CloudStorageAccount inputStorageAccount = CloudStorageAccount.Parse(blobConnectionString);
    var blob = new CloudBlob(new Uri(inputStorageAccount.BlobEndpoint, Path.Combine(context.FolderPath, context.FileName)), inputStorageAccount.Credentials);
    SharedAccessBlobPolicy adHocSAS = new SharedAccessBlobPolicy()
    {
        SharedAccessExpiryTime = DateTime.UtcNow.AddHours(48),
        Permissions = SharedAccessBlobPermissions.Read | SharedAccessBlobPermissions.Delete
    };
    string sasBlobToken = blob.GetSharedAccessSignature(adHocSAS);
    string fullUri = new Uri(blob.Uri, sasBlobToken).ToString();

相关内容

  • 没有找到相关文章

最新更新