首页 > 技术文章 > 对象(key)命名规则

hlc-123 2019-06-05 08:50 原文

创建对象时,要指定 Key 名称,它在存储桶中唯⼀一地标识该对象。如果在指定的 Bucket 内已经有相
同 Key 的对象,⽤用户上传的新对象会覆盖原来的对象。以下指导原则有助于最⼤大程度符合 DNS、
Web 安全字符、XML 分析器器和其他 API 的要求。为了了能够更更好的使⽤用EOS对象存储,在进⾏行行对象命
名的时候请仔细阅读并遵守以下命名规则:

  • 键的名称是⼀一序列列的 Unicode 字符,它是 UTF-8 编码格式。
  • 最⼤大为 1024 个字节
  • 以下字符集通常可安全地⽤用于键名称:
  • 字⺟母数字字符 0-9,a-z,A-Z
  • 特殊字符 !、-、_、.、*、'、( 和 )

以下是有效对象键名称的示例例:

  • 4my-organization
  • my.great_photos-2014/jan/;
  • videos/2014/birthday/video1.wmv

键名称中的以下字符可能需要另外进⾏行行代码处理理,并且可能需要以⼗十六进制形式在 URL 中编码
或引⽤用(URL编码 ⽅方式)。其中部分字符是不不可打印的字符,浏览器器可能⽆无法处理理它们,这也需
要特殊处理理:

  • 表示和的符号(“&”)
  • 美元 (“$”)
  • ASCII 字符范围 00–1F ⼗十六进制 (0–31 ⼗十进制) 和 7F (127 ⼗十进制)
  • “At”符号 (“@”)
  • 等于 (“=”)
  • 分号 (“;”)
  • 冒号 (“:”)
  • 加号 (“+”)
  • 空格 – ⼤大量量连续空格可能会在某些使⽤用情形中丢失 (特别是多个空格)
  • 逗号 (“,”)
  • 问号 (“?”)问号 (“?”)

需要避免的字符:

  • 反斜杠 ("")
  • 左⼤大括号 (“{”)
  • 不不可打印的 ASCII 字符 (128–255 ⼗十进制字符)
  • 插⼊入符号 (“^”)
  • 右⼤大括号 (“}”)
  • 百分⽐比字符 (“%”)
  • 重⾳音符/反勾号 (“`”)
  • 右⽅方括号 (“]”)
  • 引号
  • “⼤大于”符号 (“>”)
  • 左⽅方括号 (“[”)
  • 波浪字符 (“~”)
  • “⼩小于”符号 (“<”)
  • “井号”字符 (“#”)
  • 竖线 (“|”)

不不能以“/”或“\”字符开头,如果 Key 使⽤用 "/" 或者 "" 开头时,上传对象将会报错。

推荐阅读