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 SDK 对其进行查看和操作。
对象键命名准则
您可以在对象键名中使用任意 UTF-8 字符。但是,在键名中使用某些字符可能导致一些应用程序和协议出现问题。以下指导原则有助于最大程度符合 DNS、Web 安全字符、XML 分析器和其他 API 的要求。
安全字符
以下字符集通常可安全地用于键名。
-
字母数字字符
-
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 SDK。有关更多信息,请参阅下载存储桶对象。
可能需要特殊处理的字符
键名中的以下字符可能需要另外进行代码处理,并且可能需要以十六进制形式在 URL 中编码或引用。其中部分字符是不可打印的字符,浏览器可能无法处理它们,这也需要特殊处理:
-
表示和的符号 ("
&
") -
美元符号 ("
$
") -
ASCII 字符范围 00–1F 十六进制(0–31 十进制)和 7F(127 十进制)
-
"At" 符号 ("
@
") -
等于号 ("
=
") -
分号 ("
;
") -
冒号 ("
:
") -
加号 ("
+
") -
空格 – 大量连续空格可能会在某些使用情形中丢失(特别是多个空格)
-
逗号 ("
,
") -
问号 ("
?
")
要避免的字符
避免在键名中使用以下字符,因为这些字符需要进行大量的特殊处理,才能在所有应用程序间保持一致性。
-
反斜杠 ("
\
") -
左大括号 ("
{
") -
不可打印的 ASCII 字符(128–255 十进制字符)
-
插入符号 ("
^
") -
右大括号 ("
}
") -
百分比字符 ("
%
") -
重音符/反勾号 ("
`
") -
右方括号 ("
]
") -
引号
-
“大于”符号 ("
>
") -
左方括号 ("
[
") -
波浪字符 ("
~
") -
“小于”符号 ("
<
") -
“井号”字符 ("
#
") -
竖线 ("
|
")
XML 相关的对象键约束
正如关于行尾处理的 XML 标准
-
'
用作'
-
”
用作"
-
&
用作&
-
<
用作<
-
<
用作>
-
\r
用作
或
-
\n
用作
或

以下示例说明了使用 XML 实体代码替换回车的情况。此 DeleteObjects
请求将删除带有键参数 /some/prefix/objectwith\rcarriagereturn
的对象(其中 \r 是回车)。
<Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Object> <Key>/some/prefix/objectwith carriagereturn</Key> </Object> </Delete>