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

Windows Azure Blob Storage . (dot) is ignored in an object name

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

我发现如果我尝试用 "zzz." 命名一个文件夹然后在天蓝色我会得到 "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 调用添加文件夹 https://msdn.microsoft.com/en-us/library/azure/dd179451.aspx

你不能拥有 .在 blobname 的末尾:

Blob Names

A blob name must conforming to the following naming rules: A blob name can contain any combination of characters. A blob name must be at least one character long and cannot be more than 1,024 characters long.

Blob names are case-sensitive.

Reserved URL characters must be properly escaped. The number of path segments comprising the blob name cannot exceed 254. A path segment is the string between consecutive delimiter characters (e.g., the forward slash '/') that corresponds to the name of a virtual directory. System_CAPS_noteNote

Avoid blob names that end with a dot (.), a forward slash (/), or a sequence or combination of the two.

The Blob service is based on a flat storage scheme, not a hierarchical scheme. However, you may specify a character or string delimiter within a blob name to create a virtual hierarchy. For example, the following list shows valid and unique blob names. Notice that a string can be valid as both a blob name and as a virtual directory name in the same container:

/a

/a.txt

/a/b

/a/b.txt

You can take advantage of the delimiter character when enumerating blobs.

Naming and Referencing containers