Amazon S3文件名中的特殊字符

时间:2012-04-11 14:54:29

标签: amazon-s3

用户正在上传名称为“abc#1”,“abc#2”的文件。我将这些文件上传到S3。当我尝试下载这些文件时,我收到这样的错误 InvalidArgument 标头值包含一个开放的引用范围。

我通过使用“Uri.EscapeUriString”包装文件名来创建链接。 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

来自AWS documentation

  

键的名称是Unicode字符序列,其UTF-8编码最长为1024个字节。

因此,“ abc#1”和“ abc#2”是有效的密钥名称,那么问题可能出在您的客户端代码中,请检查Http客户端的文档。

AWS还警告您使用特殊字符:

  

您可以在对象键名称中使用任何UTF-8字符。但是,在键名中使用某些字符可能会导致某些应用程序和协议出现问题。以下准则可帮助您最大程度地遵守DNS,网络安全字符,XML解析器和其他API。

  • 字母数字字符:0-9a-zA-Z
  • 特殊字符:!-_.*'(,{{ 1}}

因此,要么将应用程序中的可用字符集限制为仅允许使用推荐的字符集,要么在客户端级别解决此问题。