【问题标题】:Azure FileStorage CloudFileAzure 文件存储云文件
【发布时间】:2017-11-22 07:34:18
【问题描述】:

我正在尝试以编程方式下载我刚刚保存到 Azure 文件存储中的文件,我得到了一个

{"远程服务器返回错误:(400) Bad Request."}

当我调用 DownloadToStream 方法时。做错了什么?
任何帮助将不胜感激。谢谢!

代码如下:

        var combinedRelativeDirectory = GetCloudDirectory(relativePath);
        CloudFile cloudFile = null;

        cloudFile = combinedRelativeDirectory.GetFileReference(filename);
        var memoryStream = new MemoryStream();

        cloudFile.DownloadToStream(memoryStream, AccessCondition.GenerateIfExistsCondition());
        memoryStream.Position = 0;
        return memoryStream;

【问题讨论】:

  • 您确定该文件是否存在?又名if (cloudFile.Exists()) { .. }

标签: c# azure azure-storage azure-storage-files


【解决方案1】:

我可以使用您的代码重现您的问题。通过查看 Fiddler 的响应消息。我发现详细错误消息是“不支持条件标头。”。去掉 AccessCondition.GenerateIfExistsCondition() 参数后,代码可以正常工作了。

cloudFile.DownloadToStream(memoryStream);

如果要在下载文件前检查文件是否存在,可以使用 Exists 方法。

if (file.Exists())
{
    file.DownloadToStream(memoryStream);
}

【讨论】:

  • 谢谢!我很快就会试试这个。
  • 如果有人想了解有关 Azure 存储故障排除(包括使用 Fiddler)的更多信息,请查看:docs.microsoft.com/en-us/azure/storage/…
  • 我得到一个编译错误:'IListFileItem' 不包含对'DownloadToFile' 的定义,并且找不到接受'IListFileItem' 类型的第一个参数的扩展方法'DownloadToFile'(您是否缺少使用指令或程序集引用?)当我尝试下载到文件行时,有什么想法吗?
猜你喜欢
  • 2015-06-27
  • 2021-11-28
  • 2017-08-18
  • 2016-02-05
  • 2011-09-10
  • 1970-01-01
  • 2020-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多