Lightsail 对象存储桶的密钥名称 - Amazon Lightsail

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Lightsail 对象存储桶的密钥名称

您上传到存储桶的文件将作为对象存储在 Amazon Lightsail 对象存储服务中。对象键(或键名称)唯一标识存储桶中存储的对象。本指南解释了密钥名称和密钥名称前缀的概念,它们构成了通过 Lightsail 控制台查看的存储桶的文件夹结构。有关存储桶的更多信息,请参阅对象存储

键名称

Lightsail 对象存储服务数据模型使用扁平结构,而不是像在文件系统中看到的那样使用分层结构。它不包含文件夹和子文件夹层次结构。但您可以使用键名称前缀和分隔符推断逻辑层次结构。Lightsail 控制台使用密钥名称前缀以文件夹结构显示您的对象。

假设您的存储桶包含具有以下对象键的四个对象:

  • Development/Projects.xls

  • Finance/statement1.pdf

  • Private/taxdocument.pdf

  • to-dos.doc

Lightsail 控制台使用密钥名称前缀 (Development/Finance/、和Private/) 和分隔符 (/) 来呈现文件夹结构。to-dos.doc 键名称没有前缀,因此其对象直接在存储桶的根级别出现。如果您在 Lightsail 控制台中浏览到该Development/文件夹,则会看到该对象。Projects.xls您会在 Finance/ 文件夹中看到 statement1.pdf 对象,并且会在 Private/ 文件夹中看到 taxdocument.pdf 对象。

Lightsail 控制台允许通过创建以密钥名称前缀和分隔符值作为密钥名称的零字节对象来创建文件夹。这些文件夹对象不会显示在控制台中。但是,它们的行为与任何其他对象一样。您可以使用 Amazon S3 API、 AWS Command Line Interface (AWS CLI) 或来查看和操作它们 AWS SDKs。

对象键命名准则

可以在对象密钥名称中使用任意 UTF -8 字符。但是,在键名中使用某些字符可能导致一些应用程序和协议出现问题。以下准则可帮助您最大限度地遵守 DNS Web 安全字符、XML解析器等。APIs

安全字符

以下字符集通常可安全地用于键名。

  • 字母数字字符

    • 0-9

    • a-z

    • A-Z

  • 特殊字符

    • 正斜杠 (/)

    • 感叹号 (!)

    • 连字符 (-)

    • 下划线 (_)

    • 句点 (.)

    • 星号 (*)

    • 单引号 (')

    • 左括号 (()

    • 右括号 ())

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

  • 4my-organization

  • my.great_photos-2014/jan/myvacation.jpg

  • videos/2014/birthday/video1.wmv

重要

如果对象密钥名称以单个句点 (.) 或两个句点 (..) 结尾,则无法使用 Lightsail 控制台下载该对象。要下载密钥名称以一两个句点结尾的对象,必须使用 Amazon S3 API AWS CLI、和 AWS SDKs。有关更多信息,请参阅下载存储桶对象

可能需要特殊处理的字符

密钥名称中的以下字符可能需要额外的代码处理,并且可能需要URL编码或引用为HEX。其中部分字符是不可打印的字符,浏览器可能无法处理它们,这也需要特殊处理:

  • 表示和的符号 ("&")

  • 美元符号 ("$")

  • ASCII字符范围 00—1F 十六进制(0—31 十进制)和 7F(127 十进制)

  • "At" 符号 ("@")

  • 等于号 ("=")

  • 分号 (";")

  • 冒号 (":")

  • 加号 ("+")

  • 空格 – 大量连续空格可能会在某些使用情形中丢失(特别是多个空格)

  • 逗号 (",")

  • 问号 ("?")

要避免的字符

避免在键名中使用以下字符,因为这些字符需要进行大量的特殊处理,才能在所有应用程序间保持一致性。

  • 反斜杠 ("\")

  • 左大括号 ("{")

  • 不可打印ASCII字符(128—255 个十进制字符)

  • 插入符号 ("^")

  • 右大括号 ("}")

  • 百分比字符 ("%")

  • 重音符/反勾号 ("`")

  • 右方括号 ("]")

  • 引号

  • “大于”符号 (">")

  • 左方括号 ("[")

  • 波浪字符 ("~")

  • “小于”符号 ("<")

  • “井号”字符 ("#")

  • 竖线 ("|")

XML相关对象键约束

按照处理XML标准的规定,所有XML文本都经过标准化 end-of-line 处理,因此单回车符(ASCII代码 13)和紧接着换行符的回车符(ASCII代码 10)被单个换行符替换。为确保正确解析XML请求中的对象键,在XML标签中插入回车符和其他特殊字符时,必须将其替换为等效的XML实体代码。以下是此类特殊字符及其等效实体代码的列表:

  • ' 用作 &apos;

  • 用作 &quot;

  • & 用作 &amp;

  • < 用作 &lt;

  • < 用作 &gt;

  • \r 用作 &#13;&#x0D;

  • \n 用作 &#10;&#x0A;

以下示例说明了如何使用XML实体代码来代替回车符。此 DeleteObjects 请求将删除带有键参数 /some/prefix/objectwith\rcarriagereturn 的对象(其中 \r 是回车)。

<Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Object> <Key>/some/prefix/objectwith&#13;carriagereturn</Key> </Object> </Delete>