【问题标题】:Uploading large files to Azure fileshare将大文件上传到 Azure 文件共享
【发布时间】:2020-09-26 14:24:08
【问题描述】:

我可以使用以下代码将小文件上传到文件共享,但大文件没有被传输。有像blob.PutBlock 这样的方法可用于将文件上传到 Blob,但找不到文件共享的任何内容。你能指导我吗?

StorageCredentials cred = new StorageCredentials("SASToken");
CloudFileClient fClient = new CloudFileClient(new Uri(FileShareUrl)), cred);

CloudFileShare fshare = fileClient.GetShareReference("FileShareName");
CloudFileDirectory root = share.GetRootDirectoryReference();
CloudFileDirectory dir = root.GetDirectoryReference("Folder/subfolder");

var cloudFile = dir.GetFileReference(fileName);
await cloudFile.UploadFromStreamAsync(incomingBlob).ConfigureAwait(false);

【问题讨论】:

  • 您是否尝试将文件从网站上传到存储帐户?那么您可能正在达到 RequestSizeLimit。在你的 Funktion 之前添加这个:[RequestSizeLimit(20971520000)]
  • 我正在使用 blob 触发器从一个存储帐户中的 blob 发送到另一个帐户中的文件共享。
  • 你可以考虑下面亚历克斯的回答。

标签: c# azure file-upload fileshare


【解决方案1】:

您应该使用 DataMovement library 将文件直接从 blob 存储复制到目标文件共享,而不是通过您的 Azure 函数流式传输大文件。

TransferManager 类有一个与copy files from blob to file share 对应的CopyAsync 方法。

这里有 some samples 来帮助您开始使用该库,您只需将其调整为文件共享而不是 blob。

【讨论】:

    猜你喜欢
    • 2021-05-03
    • 2021-12-05
    • 1970-01-01
    • 2021-09-19
    • 2020-02-13
    • 2018-08-09
    • 2021-01-10
    • 1970-01-01
    • 2018-10-16
    相关资源
    最近更新 更多