用户正在上传名称为“abc#1”,“abc#2”的文件。我将这些文件上传到S3。当我尝试下载这些文件时,我收到这样的错误
InvalidArgument
标头值包含一个开放的引用范围。
我通过使用“Uri.EscapeUriString”包装文件名来创建链接。 有什么建议吗?
答案 0 :(得分:0)
键的名称是Unicode字符序列,其UTF-8编码最长为1024个字节。
因此,“ abc#1”和“ abc#2”是有效的密钥名称,那么问题可能出在您的客户端代码中,请检查Http客户端的文档。
AWS还警告您使用特殊字符:
您可以在对象键名称中使用任何UTF-8字符。但是,在键名中使用某些字符可能会导致某些应用程序和协议出现问题。以下准则可帮助您最大程度地遵守DNS,网络安全字符,XML解析器和其他API。
0-9
,a-z
,A-Z
!
,-
,_
,.
,*
,'
,(
,{{ 1}} 因此,要么将应用程序中的可用字符集限制为仅允许使用推荐的字符集,要么在客户端级别解决此问题。