【问题标题】:Trigger for Azure FunctionsAzure Functions 的触发器
【发布时间】:2022-01-19 08:35:35
【问题描述】:

我有一个与 Azure 相关的技术问题。 当我将文件上传到 Azure 文件共享时,我想自动触发从 Azure 文件共享到 Azure Blob 存储的数据复制活动。 我尝试使用 Azure 函数来实现上述功能,但 Azure 函数上没有文件共享触发器。 有没有人知道通过将文件上传到 Azure 文件共享来触发从 Azure 文件共享到 Blob 存储的复制活动的功能?

【问题讨论】:

    标签: azure function triggers blob fileshare


    【解决方案1】:

    谢谢Gaurav Mantri 和MikeM。发布您的建议作为帮助其他社区成员的答案。

    通过将文件上传到 Azure 文件共享来触发从 Azure 文件共享到 Blob 存储的复制活动

    为 blob 创建一个至少具有 read 权限的 SAS URL,然后将其用作文件复制操作的源 URL。试试下面的代码:

    [FunctionName("MyBlobTrigger")]
        public async void Run([BlobTrigger("uploads/{name}", Connection = "UploadStorageAccount")]CloudBlockBlob myBlob, string name, ILogger log, CancellationToken cancellationToken)
        {
    
            ShareClient share = new ShareClient(storageConnection, fileShareName);
    
            ShareDirectoryClient directory = share.GetRootDirectoryClient();
            ShareFileClient fileShare = directory.GetFileClient(name);
    
            try
            {
    
                SharedAccessBlobPolicy sasConstraints = new SharedAccessBlobPolicy
                {
                    SharedAccessExpiryTime = DateTime.UtcNow.AddHours(1),
                    Permissions = SharedAccessBlobPermissions.Read
                };
                var sasToken = myBlob.GetSharedAccessSignature(sasConstraints);
                var blobSasUrl = $"{myBlob.Uri.AbsoluteUri}{sasToken}";
    
                fileShare.Create(myBlob.Properties.Length);
                await fileShare.StartCopyAsync(new Uri(blobSasUrl));
    

    可以参考Azure Function Blob Trigger copy file to File Share

    【讨论】:

      猜你喜欢
      • 2018-10-26
      • 2017-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-08
      • 2018-10-03
      • 1970-01-01
      • 2021-12-31
      相关资源
      最近更新 更多