Amazon s3 可以通过S3RESTAPI访问的有效S3密钥名称是什么?
根据AWS文件,我了解到:Amazon s3 可以通过S3RESTAPI访问的有效S3密钥名称是什么?,amazon-s3,Amazon S3,根据AWS文件,我了解到: S3键名称可以是任何小于1024个字符的UNICODE名称 当使用GET OBJ时,我需要对密钥名称进行URL编码以访问它 然而,这些规则似乎过于宽松 例如,如果我创建了一个名为“../../d”的键,当我尝试使用GET OBJECT API访问它时,会发生400错误。有趣的是,我在访问“../d”时没有问题 是否有文件规定哪些是合法的,哪些不是合法的?亚马逊提供的唯一限制是(见其网站): 存储桶或对象名称中允许哪些字符? 密钥是一个Unicode字符序列,其UT
- S3键名称可以是任何小于1024个字符的UNICODE名称
- 当使用GET OBJ时,我需要对密钥名称进行URL编码以访问它
是否有文件规定哪些是合法的,哪些不是合法的?亚马逊提供的唯一限制是(见其网站): 存储桶或对象名称中允许哪些字符?
密钥是一个Unicode字符序列,其UTF-8编码长度最多为1024字节 其他限制适用于Bucket(如常见问题解答的Bucket命名规则部分所示): 在除美国标准区域外的所有区域中,bucket名称必须符合 遵守规则。这些将产生符合DNS的bucket名称
- 存储桶名称的长度必须至少为3个字符,且不超过63个字符
- Bucket name必须是一系列由一个或多个标签组成的,这些标签之间用句点(.)分隔,其中每个标签:
- 必须以小写字母或数字开头
- 必须以小写字母或数字结尾
- 可以包含小写字母、数字和破折号
- Bucket名称不得格式化为IP地址(例如192.168.5.4)
安全字符 以下字符集通常可以安全地用于密钥名:
- 字母数字字符:0-9 a-z a-z
- 特殊字符:!-\u173'()
请注意分隔符(“/”) 以下是有效对象键名称的示例:
- 4my组织
- my.great_photos-2014/jan/myvacation.jpg
- 视频/2014/生日/视频1.wmv
可能需要特殊处理的字符 键名中的以下字符可能需要额外的代码处理,并且可能需要URL编码或作为十六进制引用。其中一些是不可打印的字符,您的浏览器可能无法处理它们,这也需要特殊处理:
- 符号(&)
- “At”符号(“@”)
- 冒号(“:”)
- 逗号(“,”)
- 美元($)
- 等于(“=”)
- 加号(“+”)
- 问号(“?”)
- ASCII字符范围为00–1F十六进制(0–31十进制)和7F(127十进制)
- 分号(“;”)
- 空间–某些用途(尤其是多个空间)可能会丢失重要的空间序列
要避免的字符 由于对所有应用程序的一致性进行了重要的特殊处理,因此应避免在密钥名称中使用以下字符
- 反斜杠(“”)
- 插入符号(“^”)
- 庄重的口音/背勾(“`”)
- “大于”符号(“>”)
- “小于”symbol(“我担心对对象(键)名称的未记录限制。亚马逊声称任何unicode都有效,但“../../word”显然无效。我想知道还有什么不受支持……答案似乎是“不,没有文档”“。我建议您在AWS论坛上提问。另一方面,这里有一个类似的问题(和答案:):@Downvoter:如果您能得到反馈,说明您认为答案没有解决问题的原因,那就太好了。或者更好的是,对答案进行编辑。
会让你感到悲伤(因为我花了2个小时进行故障排除)。下面是如何对这些讨厌的字符进行编码。我有一个场景,我将接收密钥作为API的参数下载该文件。我想知道我的API是否能够以某种方式接收密钥(abc/def/filename.png)作为路径参数[