Azure CloudFile UploadFromFile“指定的资源名称包含无效字符”

时间:2019-06-11 20:17:58

标签: azure azure-storage azure-files azure-storage-files

我正在尝试上传文件,但出现异常“指定的资源名称包含无效字符”。

我使用的路径是@“ C:\ Test \ Test.txt”。当我更改为相对寻址(即@“。\ Test.txt”)并将文件放在exe文件夹中时,它将起作用。

我需要知道的是相对寻址是从.NET客户端上载文件到Azure文件存储的唯一选择吗?有没有办法引用具有完整路径的文件并上传到文件存储?

更新:根据下面的评论和答案,我意识到了我的错误:我正在将传入文件路径提供给GetFileReference方法,该位置应该是Azure中新文件的名称,因此它包含无效的“:”。注释是正确的,我应该已经提供了代码,可能已经更容易诊断了。

public static async Task WriteFileToStorage(string filePath)
{
    CloudFileShare fileShare = GetCloudFileShare();
    CloudFileDirectory fileDirectory = fileShare.GetRootDirectoryReference();
    CloudFile cloudFile = fileDirectory.GetFileReference(filePath);
    await cloudFile.UploadFromFileAsync(filePath);
}

1 个答案:

答案 0 :(得分:0)

.Net客户端在上传到Azure文件存储时确实支持完整路径。

最好提供正在使用的完整代码,包括本地和Azure文件存储中的文件名/路径。

这是我用来测试的代码,并且可以正常工作。(并且我正在使用WindowsAzure.Storage程序包,版本9.3.3):

public IHttpActionResult GetMultifiberResult(string partNumber)
{
    var list = db.MultifiberResults.Where(s => s.PartNumber == 
                partNumber).ToList();

    return Ok(list);
}