无法引用文件名中带有空格的块 blob

索罗库莫夫

我正在使用 Azure SDK for .Net(版本 9.3.1,Platform .NET-Standard 2.0)来处理 Azure Blob 存储,并且在引用 blob 名称中有空格的块 blob 时遇到了麻烦。我已通过 Azure 存储资源管理器 1.6.1 将块 blob JSON Test.json 上传到私有容器中。

根据 Azure 存储资源管理器的 Blob 属性:

Name: `JSON Test.json`
URI: `https://<myaccountname>/<mycontainername>/JSON%20Test.json`

现在,我正在尝试CloudBlock​Blob.​Exists​Async()通过传递给GetBlockBlobReference非编码文件名 JSON Test.json 的方法检查该 Blob 是否存在

结果得到 FALSE。

现在,我正在不同的容器中以编程方式创建一个 blob,传递相同的未编码文件名,使用相同的文件名GetBlockBlobReference并创建一个带有编码文件名的 blob。

Name: `JSON%20Test.json` 
URI: `https://<myaccountname>/<mycontainername2>/JSON%20Test.json`

我做错了什么?为什么在使用非编码文件名引用它时找不到通过 Azure 存储资源管理器创建的名称中带有空格的块 blob?以编程方式创建块 blob 时,为什么要通过网络对文件名进行编码?

请帮忙。

非常感谢!

public async Task<bool> CheckExistsAsync(string connectionString, string containerName, string fileName)
        {
            var blockBlob = GetBlockBlobReference(connectionString, containerName, fileName);
            return await blockBlob.ExistsAsync();
        }

private static CloudBlockBlob GetBlockBlobReference(string connectionString, string containerName, string fileName)
        {
            return CloudStorageAccount
                .Parse(connectionString)
                .CreateCloudBlobClient()
                .GetContainerReference(containerName)
                .GetBlockBlobReference(fileName);
        }
伊万杨 |

请尝试更新WindowsAzure.Storage到最新版本v9.3.3。

我使用您的代码进行测试,并且 blob 名称中没有包含空格的问题。

示例代码:

using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
using System;
using System.Threading.Tasks;

namespace AzureBlobConsole
{
    class Program
    {
        static void Main(string[] args)
        {         
            string conn = "xxxx";
            bool x = CheckExistsAsync(conn, "f11", "222 json test.json").GetAwaiter().GetResult();

            //to see if the file exists or not
            Console.WriteLine(x);
            Console.WriteLine("completed.");
            Console.ReadLine();
        }

        public static async Task<bool> CheckExistsAsync(string connectionString, string containerName, string fileName)
        {
            var blockBlob = GetBlockBlobReference(connectionString, containerName, fileName);
            return await blockBlob.ExistsAsync();
        }

        private static CloudBlockBlob GetBlockBlobReference(string connectionString, string containerName, string fileName)
        {
            return CloudStorageAccount
                .Parse(connectionString)
                .CreateCloudBlobClient()
                .GetContainerReference(containerName)
                .GetBlockBlobReference(fileName);
        }

    }
}

测试结果:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

文件名中带有空格的grep文件

来自分类Dev

如何在 Azure Blob 存储上下载名称上带有空格的文件?

来自分类Dev

在文件名中带有空格的GetFiles

来自分类Dev

在shell中处理带有空格的文件名

来自分类Dev

如何使用 Fine Uploader 将文件上传到带有原始文件名的 azure blob

来自分类Dev

如何设置文件的Blob文件名?

来自分类常见问题

没有链接的JavaScript Blob文件名

来自分类Dev

PHP Force下载带有空格的文件名

来自分类Dev

htaccess文件名带有空格

来自分类Dev

转义文件名带有空格的转义变量

来自分类Dev

使用awk提取带有空格的文件名

来自分类Dev

带有空格的文件名的 rsync 排除选项

来自分类Dev

使用ftplib下载文件名中带有空格的文件

来自分类Dev

Python scp复制文件,文件名中带有空格

来自分类Dev

处理文件名中带有空格的文件列表

来自分类Dev

批量修改多个文件名中带有空格的文件

来自分类Dev

Firefox在文件名中带有空格的下载时出现问题

来自分类Dev

链接到Bitbucket Markdown中带有空格的文件名

来自分类Dev

文件名中带有空格的可绘制对象?

来自分类Dev

查找和xargs正确处理名称中带有空格的文件名

来自分类Dev

使用find命令在shell中打印带有空格的完整文件名

来自分类Dev

在CMD行上卷曲GET,文件名中带有空格

来自分类Dev

文件名中带有空格的可绘制对象?

来自分类Dev

在回声内的perl命令中带有空格的文件名

来自分类Dev

ffmpeg:bash脚本中带有空格的文件名

来自分类Dev

从Azure Blob引用SVG文件

来自分类Dev

Azure 数据工厂 - 从 Azure Blob 存储读取文件夹中的所有文件时记录文件名

来自分类Dev

批处理文件,文本文件中的变量/文件名中带有空格

来自分类Dev

在实体中存储对Blob的引用

Related 相关文章

  1. 1

    文件名中带有空格的grep文件

  2. 2

    如何在 Azure Blob 存储上下载名称上带有空格的文件?

  3. 3

    在文件名中带有空格的GetFiles

  4. 4

    在shell中处理带有空格的文件名

  5. 5

    如何使用 Fine Uploader 将文件上传到带有原始文件名的 azure blob

  6. 6

    如何设置文件的Blob文件名?

  7. 7

    没有链接的JavaScript Blob文件名

  8. 8

    PHP Force下载带有空格的文件名

  9. 9

    htaccess文件名带有空格

  10. 10

    转义文件名带有空格的转义变量

  11. 11

    使用awk提取带有空格的文件名

  12. 12

    带有空格的文件名的 rsync 排除选项

  13. 13

    使用ftplib下载文件名中带有空格的文件

  14. 14

    Python scp复制文件,文件名中带有空格

  15. 15

    处理文件名中带有空格的文件列表

  16. 16

    批量修改多个文件名中带有空格的文件

  17. 17

    Firefox在文件名中带有空格的下载时出现问题

  18. 18

    链接到Bitbucket Markdown中带有空格的文件名

  19. 19

    文件名中带有空格的可绘制对象?

  20. 20

    查找和xargs正确处理名称中带有空格的文件名

  21. 21

    使用find命令在shell中打印带有空格的完整文件名

  22. 22

    在CMD行上卷曲GET,文件名中带有空格

  23. 23

    文件名中带有空格的可绘制对象?

  24. 24

    在回声内的perl命令中带有空格的文件名

  25. 25

    ffmpeg:bash脚本中带有空格的文件名

  26. 26

    从Azure Blob引用SVG文件

  27. 27

    Azure 数据工厂 - 从 Azure Blob 存储读取文件夹中的所有文件时记录文件名

  28. 28

    批处理文件,文本文件中的变量/文件名中带有空格

  29. 29

    在实体中存储对Blob的引用

热门标签

归档