- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用以下 Delphi XE2(更新 4)代码:
var
ConInfo: TAmazonConnectionInfo;
RespInfo: TCloudResponseInfo;
Service: TAmazonStorageService;
Content: TBytes;
Headers: TStringList;
begin
ConInfo:=TAmazonConnectionInfo.Create(self);
ConInfo.AccountName:='YOUR ACCOUNT NAME';
ConInfo.AccountKey:='YOUR ACCOUNT KEY';
ConInfo.Protocol:='http';
Service:=TAmazonStorageService.Create(ConInfo);
RespInfo:=TCloudResponseInfo.Create;
SetLength(Content, 128);
FillMemory(@Content[0], 128, Byte('x'));
Headers:=TStringList.Create;
Headers.Values['Content-type']:='text/plain';
if not Service.UploadObject('YOUR BUCKET', 'test.txt', Content, TRUE, nil, Headers, amzbaPrivate, RespInfo) then
ShowMessage('Failed:' + RespInfo.StatusMessage);
我在调用 UploadObject 时总是遇到错误:
Failed:HTTP/1.1 403 Forbidden - The request signature we calculated does not match the signature you provided. Check your key and signing method. (SignatureDoesNotMatch)
仅当内容类型设置为“text/plain”、“text/html”或任何文本时才会发生这种情况。使用完全相同的代码,如果您只是将内容类型更改为任何其他内容类型,例如'video/3gpp',然后它按预期工作并且没有错误。上传对象的实际内容不相关,与是否出现错误无关。
我已经在 Delphi 中追踪了 Indy 代码,但我很困惑为什么文本内容类型总是给出这个错误。
有什么想法吗?
最佳答案
如果将“; charset=ISO-8859-1”附加到 Content-Type 字符串,则它可以工作:
Headers.Values['Content-type']:='text/plain; charset=ISO-8859-1';
单步执行代码,我看到 TIdEntityHeaderInfo.SetHeaders (IdHTTPHeaderInfo.pas) 中的 Content-Type 正在更改,该内容是从 TIdHTTPProtocol.BuildAndSendRequest (IdHTTP.pas) 调用的。
最终,问题似乎是 TIdEntityHeaderInfo.SetContentType (IdHTTPHeaderInfo.pas) 正在将字符集附加到内容类型(如果内容类型是“文本”且尚未有字符集)。在这些情况下不应该更改内容类型,因为内容类型是要签名的字符串的一部分,因此在签名后更改它会使签名无效。
关于delphi - 使用 TAmazonStorageService.UploadObject 当 Content-type 为 'text/*' 时出现 SignatureDoesNotMatch 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10329628/
我知道 SO 上已经问了大约 8 个类似标题的问题,但没有一个对我的问题有帮助。 所以,我想在这里发布我的问题: 我一直收到这个众所周知的 SignatureDoesNotMatch 错误,看起来非常
我正在尝试将之前使用 $cordovaCapture 录制的视频上传到 Amazon s3。 捕获过程正常工作,作为响应,我得到了对象: [MediaFile] 0: MediaFilee
我已经查看了关于 SO 的其他问题,所有这些问题都没有将 SES 和 Java 作为问题的一部分。 异常(exception) Exception in thread "main" com.amazo
我有以下配置: Django/DRF 博托3 Django 存储 我正在使用带有一组 key 的 IAM 用户凭证。我已经从我的帐户中删除了所有其他 key 集,包括根 key ,以消除 key 不匹
我们正在尝试访问亚马逊 MWS Api,但我们就是无法让它工作,我们也不知道为什么。到目前为止,这是我们尝试过的: require_once('.config.inc.php');
我们正在尝试访问亚马逊 MWS Api,但我们就是无法让它工作,我们也不知道为什么。到目前为止,这是我们尝试过的: require_once('.config.inc.php');
尝试获取用于下载 Google 存储中的文件的签名网址是有问题的。出现 SignatureDoesNotMatch 错误。 private String signString(GoogleCrede
我正在尝试将图像添加到 aws 中的 s3 存储桶,但它似乎不起作用。我收到 SignatureDoesNotMatch 错误 这是我上传文件/图像的方式: 前端 const file = e.tar
运行以下代码时: import boto3 BUCKET = 'bwd-plfb' s3 = boto3.client('s3',use_ssl = False) resp = s3.list_obj
我正在为 Amazon S3 和 CloudFront 使用 PHP 类 - Link .但是,当我尝试将文件上传到存储桶时,出现此错误: [SignatureDoesNotMatch] The re
我想编写应用程序以通过 ISBN(用于慈善计划)获取书籍封面。所以我决定使用亚马逊产品 API。我得到了访问 key 和 secret key 。我得到了一个用于生成 key 的代码,我传递了 URL
我目前在尝试向 Amazon Marketplace WebService 提交请求时遇到以下错误: The request signature we calculated does not matc
我的代码已成功将文档上传到正确的存储桶中。我可以登录并查看 AWS S3 上的存储桶中的文档。当我尝试使用 boto3 中的generate_signed_url 方法来获取这些文档的 URL,然后将
我使用 Amazon Web Service S3 上传和存储我的文件。由于这个预签名的 url,我使用 AWS Sdk 为 Node.js 服务器端生成一个预签名的 url,以便直接从浏览器上传文件
感谢您的关注。 我正在尝试编写自己的轻量级 PHP 类来生成 AWS 身份验证 header 。据我所知,它运行正常。我已经使用此处 AWS 文档中提供的示例测试了它的输出:http://docs.a
我正在使用 AWS 签名版本 4 为 GET 请求预签名 URL。我让整个模块为 AWS 在其文档中提供的示例代码工作。当我尝试在我自己的 s3 存储桶上使用它时(在将所有示例值更改为我的真实值之后)
尝试使用 OpenSSL 通过 AWSCLI 安装多域 ssl 证书,它是 Comodo PositiveSSL 多域证书。 我遵循了 aws 教程和网络上的所有说明。我花了大约 2 个小时与 Com
我正在使用cordova文件传输使用签名url从aws s3下载文件,因为cordova文件传输对uri进行编码,签名中的“%”被转换为“%25”,因此,导致签名不匹配 最佳答案 尝试像这样设置您的选
我的 Firebase 存储 getSignedUrl()下载链接工作几天,然后停止工作。错误信息是 SignatureDoesNotMatch The request signature we ca
所以我的 iPhone 应用程序成功地将照片上传到 Amazon S3。我使用了与 S3Uploader 示例项目相同的代码以及最新(1.6.0 版)适用于 iOS 的 Amazon AWS 开发工具
我是一名优秀的程序员,十分优秀!