具有非ASCII字符的AWS SDK .NET自定义元数据

时间:2018-03-08 18:51:38

标签: c# .net amazon-web-services amazon-s3 aws-sdk

我正在尝试使用自定义元数据将对象上传到S3。如果我只使用ASCII它工作正常(我使用HttpUtility.HtmlEncode来逃避一些特殊的符号)。

但是,如果我想发送带有法语符号的文本,我会得到S3异常(就像我使用未转义的特殊符号一样)

1 个答案:

答案 0 :(得分:2)

使用REST API或AWS SDK时,不能将非ASCII字符用于S3用户定义的元数据(因为AWS SDK基本上是包装底层Amazon S3 REST API的包装库):

  

用户定义的元数据是一组键值对。亚马逊S3商店   用户定义的小写元数据键。每个键值对都必须   当你使用REST 时符合 US-ASCII,当你使用时符合UTF-8   通过POST使用SOAP或基于浏览器的上传。

虽然两者都支持UTF-8;使用POST,AWS recommends的SOAP和基于浏览器的上传,您使用REST API或AWS SDK表示SOAP不支持新功能:

  

不推荐使用HTTP上的SOAP支持,但它仍然可用   HTTPS。 SOAP不支持新的Amazon S3功能。我们   建议您使用REST API或AWS SDK。