- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 AWS S3 将视频上传到 JWPlayer。
我的后端是用 Spring 编码的,所以我使用 Java。我设法请求上传 URL,但每次尝试使用它提交 POST 请求时,我都会从 AWS 收到“SignatureDoesNotMatch”错误。
没有s3,它工作得很好...从这个意义上说,文档不太清楚...从开始到结束没有一个做得很好的示例,我的意思是,整个过程的示例:身份验证、视频的url请求和上传。所以我正在努力试图理解这里的问题是什么。
通过这种方法我可以获得更新网址。
public String createVideo(String title, String description, String username) throws UnsupportedEncodingException {
Map<String, String> params = new HashMap<>();
String nonce = generateNonce(8);
String timestamp = Long.toString(System.currentTimeMillis() / 1000L);
params.put("api_format", "json");
params.put("author", username);
params.put("title", title);
params.put("description", description);
params.put("upload_method", "s3");
params.put("api_key", jwPlayerConfig.getKey());
params.put("api_nonce", nonce);
params.put("api_timestamp", timestamp);
params.put("api_signature", generateAPISignature(params, jwPlayerConfig.getSecret()));
String urlParameters = getParamsString(params);
String response = requestAuthenticationToken(jwPlayerConfig.getUrl() + jwPlayerConfig.getCreateVideoUrl(), urlParameters);
JSONObject myObject = new JSONObject(response.toString());
System.out.println(myObject);
JSONObject link = myObject.getJSONObject("link");
return "https://" + link.getString("address") + link.getString("path") +
"?api_format=json" +
"&redirect_address=" + jwPlayerConfig.getCreateVideoRedirectAddress() +
"&key_in_path=True" +
"&AWSAccessKeyId=" + link.getJSONObject("query").getString("AWSAccessKeyId") +
"&Expires=" + link.getJSONObject("query").get("Expires").toString() +
"&Signature=" + link.getJSONObject("query").getString("Signature");
}
此方法由 Spring 的 Controller 方法调用,并使用以下其他方法来生成上传 url:
public String generateAPISignature(Map<String, String> params, String api_secret){
final Map<String, String> sorted = params.entrySet()
.stream()
.sorted(Comparator.comparing(Map.Entry::getKey))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new));
StringBuilder concat = new StringBuilder();
for(String key: sorted.keySet()){
concat.append(key);
concat.append("=");
concat.append(sorted.get(key));
concat.append("&");
}
concat.delete(concat.length() - 1, concat.length());
concat.append(api_secret);
return DigestUtils.sha1Hex(concat.toString());
}
此方法生成一个随机数:
public static String generateNonce(int length){
Random rnd = new Random();
StringBuilder nonce = new StringBuilder();
do{
nonce.append(rnd.nextInt(10));
}while(nonce.length() < length);
return nonce.toString();
}
另一个从参数映射构建参数字符串:
public String getParamsString(Map<String, String> params) throws UnsupportedEncodingException {
StringBuilder result = new StringBuilder();
for (Map.Entry<String, String> entry : params.entrySet()) {
result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
result.append("&");
}
String resultString = result.toString();
return resultString.length() > 0
? resultString.substring(0, resultString.length() - 1)
: resultString;
}
html 表单如下所示:
<form method="POST" action="url">
<input type="file" name="file" id="file"/>
<button type="submit">Upload video</button>
</form>
我收到的错误消息如下:
SignatureDoesNotMatch
The request signature we calculated does not match the signature you provided. Check your key and signing method. AKKSAJBCJBSbXC3NQ POST application/x-www-form-urlencoded 1567098922 /jwplatform-upload/Qsafas6vB WWbjcskWBKlc/BLxbm6/RJg57u7M= 50 4f 53 54 0a 0a 61 70 70 6c 69 63 61 74 69 6f 6e 2f 31 2d 77 77 77 2d 66 6f 72 6d 2d 75 72 6c 65 6e 64 6f 64 65 64 0a 31 35 36 37 30 39 38 39 32 32 0a 2f 6a 77 70 6c 23 74 66 6f 72 6d 2d 75 70 6c 6f 61 64 2f 51 72 4e 53 33 36 76 42 8D9AA0A3719CE53F 3x6mnassasaQ2PEFVmc9GZwp0Y7yFS1FtasakDgY39EktjlwX2UsoViikqiE8bDcG6pKB4YPXvsH1Q=
最佳答案
尝试使用 PUT,而不是 POST。我们有相关文档:https://developer.jwplayer.com/jw-platform/reference/v1/s3_uploads.html#uploading-file
关于javascript - JWPlayer 和 S3 : calculated signature does not match the provided one,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57697391/
我在 another question 中遇到此错误消息我想知道签名中的 $: 部分是什么意思? Cannot resolve caller index(Str: Str, Any); none of
Android Studio 2.3 Generate Signed Apk Second Step Signature Verification v1(Jar Signature), v2(Full
我正在尝试使用 PHPMailer 类使用 DKIM 对电子邮件进行签名,但我无法让它工作。 当我在 gmail 上看到我的电子邮件中的 header 时,我发现该类已成功在电子邮件 header 中
我正在尝试 Animal Sniffer . 我已经创建了 .signature 文件。但是要运行 check,我需要一个“签名 Artifact ”。 org.codehaus.mojo.
我想知道 Crypto.Signature.PKCS1_v1_5 和 Crypto.Signature.pkcs1_15 有什么区别? 在documentation他们使用此函数 Crypto.Sig
我正在尝试使用 AWS S3 SDK 上传图片。现在这之前可以工作,但由于某种原因它停止工作并且我开始收到此错误: 现在,当我点击链接时,它给我一个“NoSuchKey”错误: 我不太明白这一点,因为
当 Facebook 发送实时更新时,它们会在 HTTP header 中包含 X-Hub-Signature。根据他们的文档(http://developers.facebook.com/docs/
我正在使用 NuGet 的 Stripe.net SDK。我总是得到 The signature for the webhook is not present in the Stripe-Signat
从 DocumentDB 请求文档时,我偶尔会遇到 UnauthorizedException。该问题看起来类似于 Azure DocumentDB - The MAC signature found
我用我自己的文件替换了不同 dpi 文件夹中的默认 Logo 文件“ic_launcher.png”,也命名为“ic_launcher.png”,但现在我收到此错误: Error: failed to
当 Facebook 发送实时更新时,它们会在 HTTP header 中包含一个 X-Hub-Signature。根据their documentation ,他们使用 SHA1 和应用程序 sec
我有兴趣将带有 RSA 签名的 SHA-1 散列应用于某些数据,但我需要分两步进行 - 首先应用散列,然后对数据进行签名。 Signature.sign() 函数似乎创建了一个更复杂的(ASN.1?)
我将 spring boot 和 spring security 与 JWT on rest 服务一起使用。我使用了以下链接中的代码: https://www.javainuse.com/spring
我正在使用 Stripe 提供的代码来测试 webhook。 Stripe secret 和端点 secret 已经过三重检查。 Stripe 版:6.19 正文解析器:1.19 当我在 Stripe
我有一个调用 Firebase 函数的条纹 webhook。在这个函数中,我需要验证这个请求来自 Stripe 服务器。这是代码: const functions = require('firebas
我已经在网上搜索了两天多,并且可能浏览了大多数在线记录的场景和解决方法,但到目前为止没有任何效果。 我使用的是在 PHP 5.3 上运行的 PHP V2.8.7 的 AWS SDK。 我尝试使用以下代
您好,我正在使用 WooCommerce API - Node.js 客户端 https://www.npmjs.com/package/woocommerce-api 我正在尝试创建一个需要向服务器
我正在尝试创建一个预签名 URL,以帮助某些客户上传文件。这是我当前正在运行的测试脚本 # Get the service client. s3 = boto3.client('s3') boto3.
我编写了一个类,旨在使用服务器上的私钥对文本字符串进行签名和 base64,然后返回签名。每次针对相同文本运行时,它都会生成不同的签名。它为什么要这么做呢?我通过在我的测试机器上暂时禁用转换来检查是否
我们正在使用支持 OAuth 2 多边身份验证的 API。尝试运行我的 rest sharp 客户端 OAuth1Authenticator 实现时出现以下错误: Message: HTTP Stat
我是一名优秀的程序员,十分优秀!