Azure Logic App获取大于300MB的文件内容

时间:2019-09-10 13:41:33

标签: azure azure-storage azure-logic-apps

我想创建一个逻辑应用程序,该应用程序列出我的azure文件存储中的所有文件,然后将它们复制到SFTP服务器。我已经设置了以下流程 1.列出文件存储中的文件 2.获取文件的元数据 3.获取文件内容 4.在SFTP上创建文件

对于小于300MB的文件,一切正常,但是当我要复制大于300MB的文件时, “文件包含540.782兆字节,超过了最大300兆字节。”

那么我的问题是否有解决方法或其他解决方案?

1 个答案:

答案 0 :(得分:0)

此限制可能会导致它仍然是预览功能,然后我使用blob测试它没有此限制。

所以我想您可以在获取文件名后调用一个函数上传文件yo blob,然后使用blob连接器获取blob内容并上传到ftp服务器。

下面是我的功能代码,在我的测试中,我没有从请求中传递文件名,因此您可以更改它以从请求中获取文件名。

public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequestMessage req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");


            CloudStorageAccount storageAccount = CloudStorageAccount.Parse("storage connection string");

            CloudFileClient fileClient = storageAccount.CreateCloudFileClient();

            CloudFileShare share = fileClient.GetShareReference("windows");


            CloudFileDirectory rootDir = share.GetRootDirectoryReference();

            String filename = "Downloads.zip";

            CloudFile file = rootDir.GetFileReference(filename);
            string fileSas = file.GetSharedAccessSignature(new SharedAccessFilePolicy()
            {
                // Only read permissions are required for the source file.
                Permissions = SharedAccessFilePermissions.Read,
                SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24)
            });
            Uri fileSasUri = new Uri(file.StorageUri.PrimaryUri.ToString() + fileSas);
            var myClient = storageAccount.CreateCloudBlobClient();
            var container = myClient.GetContainerReference("test");
            var blockBlob= container.GetBlockBlobReference("test.zip");
            await blockBlob.StartCopyAsync(fileSasUri);

            return (ActionResult)new OkObjectResult($"success");

        }

以下是我的测试流程。请注意blob路径,您需要使用此/test/@{body('Get_file_metadata')?['DisplayName']}对其进行修改。

enter image description here

这是结果图片,从我可以用300MB以上的文件测试的大小来看。

enter image description here