Each Amazon S3 object has a set of key-value pairs with which it is associated. There are two kinds of metadata: system metadata, and user metadata.
System metadata is used and is sometimes processed by Amazon S3. System metadata behavior depends on which API (REST or SOAP) you are using.
User metadata entries are specified by you. Amazon S3 does not interpret this metadata—it simply stores it and passes it back when you ask for it. Metadata keys and values can be any length, but must conform to US-ASCII when using REST and UTF-8 when using SOAP or browser-based uploads through POST.
For more information about metadata encodings, go to sections 2 and 4.2 of http://www.ietf.org/rfc/rfc2616.txt.