【问题标题】:Azure table storage names - invalid charactersAzure 表存储名称 - 无效字符
【发布时间】:2020-02-21 22:17:25
【问题描述】:

我在 Azure 表存储中有以下表名。表名在我的应用程序中自动生成,然后使用 table.CreateIfNotExists(tableName) 创建。有些工作,有些不工作。当我深入研究错误时,扩展的错误信息告诉我资源名称包含无效字符 - 但是我无法弄清楚失败名称中的无效字符 - 任何人都可以发现这一点吗?

8836461cc98249bea59dc5f6790d40edstk365developmentusers

– 指定的资源名称包含无效字符

8836461cc98249bea59dc5f6790d40edstk365developmenttasks

– 指定的资源名称包含无效字符

af0589646af645b98f749d92a5b2ee25stk365developmentusers

——有效

【问题讨论】:

    标签: azure azure-storage azure-table-storage


    【解决方案1】:

    表名不能以数字开头。所以你的第一个例子,以8 开头,是无效的。

    表格名称也限制为 63 个字符。您尚未展示如何生成名称,但这也可能是您遇到的限制。

    完整的规则详情是here

    【讨论】:

    • 完美 - 谢谢。前缀是一个 guid(去掉 - )——我会修复那些以数字开头的。应该在 63 个字符以下,但我也会为此添加一个检查。
    【解决方案2】:

    当我尝试将文件上传到我的azure blob storage 时,我也遇到了这个错误。

    我的问题是我使用的容器名称用大写字母 (Daily) 表示。一旦我将参数schedule 的值更改为以小写字母(daily)开头,我开始收到实际错误,即The specified container does not exist.,因为我没有在blob 中创建容器。在我创建名为 daily 的容器后,一切都开始按预期工作。

    【讨论】:

      【解决方案3】:

      我最近也遇到了这个问题。我将 Azure CLI 与 Powershell 一起使用,发现您不能在命令中使用变量名。您还必须在容器名称周围使用引号,并且它们必须是小写的。

      所以,例如:

      $containerName = "gamers"
      az storage container create `
       --name $containerName `
       --connection-string $connectionString
      

      不起作用,但是:

      az storage container create `
       --name 'gamers' `
       --connection-string $connectionString
      

      按预期工作。我什至尝试将变量设置为有引号但没有运气。我希望这对将来的某人有所帮助。

      【讨论】:

        猜你喜欢
        • 2021-08-24
        • 2017-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多