According to AWS S3 documentation:
Although you can use any UTF-8 characters in an object key name, the following key naming best practices help ensure maximum compatibility with other applications. Each application may parse special characters differently. The following guidelines help you maximize compliance with DNS, web safe characters, XML parsers, and other APIs.
Please find below the
Safe characters
The following character sets are generally safe for use in key names:
- Alphanumeric characters: 0-9 a-z A-Z
- Special characters: ! - _ . * ' ( )
NOTE ABOUT THE DELIMITER ("/")
The following are examples of valid object key names:
Note that the Amazon S3 data model is a flat structure: you create a bucket, and the bucket stores objects. There is no hierarchy of subbuckets or subfolders; however, you can infer logical hierarchy using keyname prefixes and delimiters as the Amazon S3 console does.
e.g if you use Private/taxdocument.pdf as a key, it will create the Private folder, with taxdocument.pdf in it.
Amazon S3 supports buckets and objects, there is no hierarchy in Amazon S3. However, the prefixes and delimiters in an object key name, enables the Amazon S3 console and the AWS SDKs to infer hierarchy and introduce concept of folders.
Characters That Might Require Special Handling
The following characters in a key name may require additional code handling and will likely need to be URL encoded or referenced as HEX. Some of these are non-printable characters and your browser may not handle them, which will also require special handling:
- Ampersand ("&")
- 'At' symbol ("@")
- Colon (":")
- Comma (",")
- Dollar ("$")
- Equals ("=")
- Plus ("+")
- Question mark ("?")
- ASCII character ranges 00–1F hex (0–31 decimal) and 7F (127 decimal.)
- Semicolon (";")
- Space – Significant sequences of spaces may be lost in some uses (especially multiple spaces)
Characters to Avoid
You should avoid the following characters in a key name because of significant special handling for consistency across all applications.
- Backslash ("")
- Caret ("^")
- Grave accent / back tick ("`")
- 'Greater Than' symbol (">")
- 'Less Than' symbol ("<")
- Left curly brace ("{")
- Right curly brace ("}")
- Right square bracket ("]")
- Left square bracket ("[")
- 'Pound' character ("#")
- Non-printable ASCII characters (128–255 decimal characters)
- Percent character ("%")
- Quotation marks
- Tilde ("~")
- Vertical bar / pipe ("|")
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…