AWS SNS C#无法发布大于65kb的邮件

OnT*_*pot 5 c# sdk signing amazon-web-services amazon-sns

当我尝试在C#中使用AWSSDK版本2.0.8.2发布大于65536字节的消息时.

我得到以下异常:

AWSSDK.dll中出现"Amazon.SimpleNotificationService.Model.InvalidParameterException"类型的例外但未在用户代码中处理

附加信息:无效参数:消息太长,只有签名版本4的请求才能发布大于65536字节的消息.

我到处看都包括AWS文档,但我无法找到如何使用签名4进行SNS推送.有人知道吗?

我已经尝试更新到2.0.10.0但仍然没有运气,这是我正在使用的代码

RegionEndpoint regionEndPoint = RegionEndpoint.USWest2;

IAmazonSimpleNotificationService snsClient = AWSClientFactory.CreateAmazonSimpleNotificationServiceClient(awsAccessKeyId, awsSecretAccessKey, regionEndPoint);

PublishRequest publishRequest = new PublishRequest()
            {
                Subject = subject,
                Message = jsonBody,
                TopicArn = testTopicArn
            };

            snsClient.Publish(publishRequest);
Run Code Online (Sandbox Code Playgroud)

Ant*_*ace 6

2013年6月18日,AWS在SQS和SNS中增加了对256 kb有效载荷的支持,如本AWS所述:"有什么新内容?" 帖子.从帖子:

256KB有效负载(SQS和SNS)使开发人员能够在每次API调用时发送和接收更多数据.以前,有效载荷的上限为64KB.现在,大型有效负载按每64KB"有效负载"的一个请求计费.例如,对256KB有效负载的单个API调用将被计为四个请求.我们的客户告诉我们,更大的有效负载将实现以前难以实现的新用例.

这些功能现在在所有地区都可用.要使用这些功能,您必须使用启用了AWS签名版本4的最新SDK.

您应该只获得该异常,因为您使用的SDK版本较旧,仅支持64KB(65,536字节)的有效负载.看起来SDK的2.0.8版本应该有这个签名.也许在相关项目中检查您的参考文献,也许您可​​能会引用可能导致问题的旧版本?

这里有一些关于SNS中大型有效载荷的附加文档.