[英]How to upload images using postman to azure blob storage
我一直在尝试使用邮递员将图像上传到我的 blob 容器文件夹这里是Azure 存储服务 REST API 的授权链接,用于生成签名并在正文中附加文件名文件字段。
var key = "[Storage account key]";
var strTime = (new Date()).toUTCString();
var strToSign = 'PUT\n\nimage/jpeg; charset=UTF-8\n\nx-ms-date:' + strTime + '\nx-ms-meta-m1:v1\nx-ms-meta-m2:v2\n/colony7/folder-customer-profilepic/Home - explorar.jpg';
var secret = CryptoJS.enc.Base64.parse(key);
var hash = CryptoJS.HmacSHA256(strToSign, secret);
var hashInBase64 = CryptoJS.enc.Base64.stringify(hash);
var auth = "SharedKey colony7:"+hashInBase64;
我使用过这些https://docs.microsoft.com/en-us/rest/api/storageservices/put-block ,https://docs.microsoft.com/en-us/rest/api/storageservices/authentication-上面代码的 for-the-azure-storage-services 参考。
我也开启了cors。 请分享有关如何使用邮递员将 jpg 或 png 图像上传到我的 blob 的解决方案。
提前致谢
不是您问题的真正答案,但我看到了许多可能导致您面临此问题的问题。 我注意到的一些问题是:
https://colony7.blob.core.windows.net/folder-customer-profilepic/Home - explorar.jpg
。image/jpg
发送。 但是,在您的stringToSign
它被设置为image/jpeg; charset=UTF-8
image/jpeg; charset=UTF-8
。 他们两个应该完全匹配。stringToSign
缺少内容长度标头。stringToSign
对应于SharedKeyLite
但是在创建授权标头时,您使用的是SharedKey
。CanonicalizedHeaders
不包括x-ms-version
。SharedKey
,那么您的stringToSign
应该以不同的方式构造。 有关更多详细信息,请参阅您共享的文档链接。请修复这些错误并使用最新的屏幕截图/值更新您的问题。
方法: PUT
。
网址方案:
(https://{{storageName}}.blob.core.windows.net/{{Container}}/{{ImageName.png}}?{{SAS Token}})
标题:
"Content-Type": "image/png", "Content-Length": "{{size in Bytes}}", "x-ms-blob-type": "BlockBlob"
正文:选择二进制添加图像(标题和 URL 中的图像名称应相同。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.