我们是否有Azure blob文件名不支持的字符列表?

yc0p9oo0  于 2023-06-24  发布在  其他
关注(0)|答案(3)|浏览(107)

我上传一些文件与一些不同的特殊字符的斑点。它没有被上传。我发现在命名Azure的文件时有一些限制。因此,我需要blob文件名不支持的unicode字符列表,或者查找azure blob文件名中是否支持字符的方法。
我在下面提到了这一点。他们没有提供任何特定的列表或找到它的方法。https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-shares--directories--files--and-metadata
I need the exact validation of file name validation happening on upload file blade on azure blob

mspsb9vt

mspsb9vt1#

我不认为Microsoft Docs是非常精确的指定。
blob名称必须符合以下命名规则:

  • blob名称可以包含任何字符组合。
  • 对于Azure存储中的Blob,Blob名称的长度必须至少为一个字符,并且不能超过1,024个字符。
  • Blob名称区分大小写。
  • 保留的URL字符必须正确转义。
  • 包含blob名称的路径段数不能超过254。路径段是对应于虚拟目录的名称的连续分隔符字符(例如,正斜杠'/')之间的字符串。

在我的测试中,我发现Azure Blob名称中不能包含这些字符

  • 控制字符0x 00 - 0x 1F
  • 删除0x 7 F
  • 反斜杠“\”- Azure将其转换为正斜杠“/”
  • 以句号结尾的名字。

我使用Azure Blob go SDK来进行这些测试,所以这些限制中的一些可能是由于这个原因。

9nvpjoqh

9nvpjoqh2#

以下是正确的文档:https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata#blob-names
blob名称必须符合以下命名规则:

  • blob名称可以包含任何字符组合。
  • 对于Azure存储中的Blob,Blob名称的长度必须至少为一个字符,并且不能超过1,024个字符。

Azure存储模拟器支持最多256个字符的blob名称。有关详细信息,请参阅Use the Azure storage emulator for development and testing

  • Blob名称区分大小写。
  • 保留的URL字符必须正确转义。
  • 包含blob名称的路径段数不能超过254。路径段是对应于虚拟目录的名称的连续分隔符字符(例如,正斜杠'/')之间的字符串。

注意:避免使用以点(.)、正斜杠(/)、序列或两者的组合结尾的blob名称。
Blob服务基于平面存储方案,而不是分层方案。但是,您可以在blob名称中指定字符或字符串分隔符来创建虚拟层次结构。例如,以下列表显示了有效且唯一的blob名称。请注意,字符串在同一容器中既可以作为blob名称,也可以作为虚拟目录名称:

  • /a
  • /a.txt
  • /a/B
  • /a/b.txt

在枚举blob时,可以利用分隔符。
注意:您问题中提到的doc是用于Azure文件存储而不是Azure Blob存储的,因此它不是正确的。

68de4m5k

68de4m5k3#

不建议在blob名称中使用的字符清楚地列出:https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata#unicode-characters-not-recommended-for-use-in-container-or-blob-names

相关问题