Php WindowsAzure Blob存储。(点)在对象名称中被忽略

Php WindowsAzure Blob存储。(点)在对象名称中被忽略,php,azure,azure-storage,Php,Azure,Azure Storage,我在项目中使用Windows Azure Blob存储来存储数据。 我上传文件和文件夹。文件夹只是0大小的对象,名称以“/”结尾 我发现如果我尝试用“zzz”命名一个文件夹,那么在azure上我会得到“zzz”(.被删除) 此外,z.z.z.会转换为zzz,但z.z.z不会转换。 看来是这样。在“对象名称”的末尾,将删除所有点 请求就像 PUT myblob.blob.core.windows.net/myblobtop/zzz.?timeout=30 headers: [Content-Enc

我在项目中使用Windows Azure Blob存储来存储数据。 我上传文件和文件夹。文件夹只是0大小的对象,名称以“/”结尾

我发现如果我尝试用“zzz”命名一个文件夹,那么在azure上我会得到“zzz”(.被删除) 此外,z.z.z.会转换为zzz,但z.z.z不会转换。 看来是这样。在“对象名称”的末尾,将删除所有点

请求就像

PUT myblob.blob.core.windows.net/myblobtop/zzz.?timeout=30
headers:
[Content-Encoding] => 
[Content-Language] => 
[Content-Length] => 0
[Content-MD5] => 
[Content-Type] => application/directory
[x-ms-version] => 2009-09-19
[Connection] => Keep-Alive
[x-ms-blob-type] => BlockBlob
还有一个名为myblobtop/zzz的对象,没有。到头来

有人知道这是什么以及如何解决吗? 可能需要一些url编码来编码。最后呢?


我使用此API调用添加文件夹

您不能拥有一个。在blobname的末尾:

斑点名称

blob名称必须符合以下命名规则:blob名称 可以包含任何字符组合。blob名称必须位于 至少一个字符长,不能超过1024个字符 长

Blob名称区分大小写

保留的URL字符必须正确转义。路径数 包含blob名称的段不能超过254。路径段是 连续分隔符字符之间的字符串(例如,向前 与虚拟目录的名称相对应的斜杠“/”。 系统\u大写\u注释

避免以点(、正斜杠(/)或空格结尾的blob名称 二者的顺序或组合

Blob服务基于平面存储方案,而不是分层存储方案 计划。但是,您可以指定字符或字符串分隔符 在blob名称中创建虚拟层次结构。例如 下面的列表显示了有效且唯一的blob名称。请注意,字符串 在中可以作为blob名称和虚拟目录名称有效 同一容器:

/a

/a、 文本

/a/b

/a/b.txt

枚举时可以利用分隔符字符 斑点


是的。但它不是容器。在我的示例中,“myblobtop”是一个容器和zzz。是一个文件夹。在我的实际测试中,容器也很好(只是小写字母),为什么要添加空文件夹?文件夹只是blob名称的一部分,因此无需创建空文件夹