从AWS文档中,我理解:
但是,这些规则似乎过于宽松.
例如,如果我创建一个名为"../../d"的密钥,当我尝试使用GET OBJECT API访问它时会发生400 ERROR.有趣的是,访问'../d'没问题.
是否有文件说明什么是合法的?
Man*_*ube 63
根据AWS S3文档:
虽然您可以在对象键名称中使用任何UTF-8字符,但以下键命名最佳实践有助于确保与其他应用程序的最大兼容性.每个应用程序可以不同地解析特殊字符.以下准则可帮助您最大限度地遵守DNS,Web安全字符,XML解析器和其他API.
请在下面找到
以下字符集通常可以安全地用于密钥名称:
关于DELIMITER的注释(" / ")
以下是有效对象键名称的示例:
4my组织
my.great_photos-2014/JAN/myvacation.jpg
视频/ 2014 /生日/ video1.wmv
请注意,Amazon S3数据模型是扁平结构:您创建存储桶,存储桶存储对象.没有subbuckets或子文件夹的层次结构; 但是,您可以使用keyname前缀和分隔符来推断逻辑层次结构,如Amazon S3控制台所做的那样.
例如,如果您使用Private/taxdocument.pdf作为键,它将创建Private文件夹,其中包含taxdocument.pdf.
Amazon S3支持存储桶和对象,Amazon S3中没有层次结构.但是,对象键名称中的前缀和分隔符使Amazon S3控制台和AWS开发工具包能够推断层次结构并引入文件夹的概念.
密钥名称中的以下字符可能需要额外的代码处理,并且可能需要进行URL编码或引用为HEX.其中一些是不可打印的字符,您的浏览器可能无法处理它们,这也需要特殊处理:
您应该避免键名中的以下字符,因为对所有应用程序的一致性进行了重要的特殊处理.
Vic*_*ari 13
亚马逊提供的唯一限制是(在他们的技术常见问题解答中找到):
存储桶或对象名称中允许使用哪些字符?
密钥是一系列Unicode字符,其UTF-8编码长度最多为1024个字节.
其他限制适用于Buckets(如Bucket Restrictions and Limitations常见问题解答中的Bucket Naming规则部分所示):
在除美国标准区域以外的所有区域中,存储桶名称必须符合以下规则.这些导致符合DNS的存储桶名称.
- 存储桶名称长度必须至少为3且不超过63个字符
- 存储桶名称必须是一系列由句点(.)分隔的一个或多个标签,其中每个标签:
- 必须以小写字母或数字开头
- 必须以小写字母或数字结尾
- 可以包含小写字母,数字和短划线
- 存储桶名称不得格式化为IP地址(例如,192.168.5.4)
较不宽容的限制适用于美国标准区域.有关其他信息和一些示例,请参阅常见问题解答.希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
42302 次 |
| 最近记录: |