我可以创建容器、列出容器和列出 blob,但是当我尝试向 Azure 存储的 Blob 中上传或删除文件时,进行 PUT/DELETE
请求后,它会显示以下错误:
403
This request is not authorized to perform this operation using this permission.
{
'content-length': '279',
'content-type': 'application/xml',
server: 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0',
'x-ms-request-id': '4de6c154-f01e-0051-7ce4-1314ef000000',
'x-ms-version': '2018-03-28',
'x-ms-error-code': 'AuthorizationPermissionMismatch',
date: 'Mon, 08 Mar 2021 06:32:44 GMT',
connection: 'close'
}
上传/PUT
文件的代码如下:
const request = require("request");
require("dotenv").config();
const account = process.env.ACCOUNT_NAME || "";
const containerName = "demo";
const blobName = "dummyfile1.txt";
const blobContent = "Hello, This will be written in file";
const contentLength = new TextEncoder().encode(blobContent).length;
var strTime = new Date().toUTCString();
const options = {
url: `https://${account}.blob.core.windows.net/${containerName}/${blobName}`,
headers: {
Authorization: "Bearer <BearerToken>",
"x-ms-date": strTime,
"x-ms-version": "2018-03-28",
"x-ms-blob-type": "BlockBlob",
"Content-Length": contentLength,
"Content-Type": 'application/text-plain',
},
body: blobContent,
};
function callback(error, response, body) {
console.log(response.statusCode);
console.log(response.statusMessage);
console.log(response.headers);
}
request.put(options, callback);
在这里,我手动替换了通过POSTMAN获取的代码中的 < 的符号:
此外,我还将Storage Data Contributor权限添加到了该应用程序中:
我还将Azure Storage、user_impersonation权限委派给了该应用程序。
但问题仍然存在。
https://storage.azure.com/user_impersonation offline_access
范围。 - unknownhttps://storage.azure.com/user_impersonation offline_access
在 POSTMAN 中访问 Bearer Token 并使用该令牌运行此请求。但仍然会出现相同的错误消息。 是的,在之前的问题中,我正在尝试通过客户端凭据获取Bearer令牌,而在这里我正在尝试通过Auth Code流程获取它。 注意:我已将Storage Blob数据贡献者授予了该应用程序。 - Mayank Patel