我们使用此链接和其他链接通过SAS令牌将文件从x++上传到azure blob。然而,我们希望通过托管身份实现相同的目标,因为内部安全禁止使用密钥。我知道这涉及到
我无法通过 x++ 代码实现步骤 4。请提供帮助并建议任何替代的 OOB 解决方案(如果适用)。
谢谢。
最初,我注册了一个应用程序并在其中授予了 Storage API 权限,如下所示:
在存储帐户下,我向上述应用程序添加了 “存储 Blob 数据贡献者” 角色,如下所示:
就我而言,我使用以下示例 C# 代码将文件上传到 Azure 存储帐户:
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
namespace AzureBlobUploadApp
{
class Program
{
private static async Task Main(string[] args)
{
string tenantId = "tenantId";
string clientId = "appId";
string clientSecret = "secret";
string storageAccountName = "sridemostor1411";
string containerName = "sri";
string blobName = "logo.jpg";
string filePath = "C:\\test\\logo.jpg";
var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
await UploadFileToBlobAsync(storageAccountName, containerName, blobName, filePath, credential);
}
private static async Task UploadFileToBlobAsync(string storageAccountName, string containerName, string blobName, string filePath, ClientSecretCredential credential)
{
string blobUri = $"https://{storageAccountName}.blob.core.windows.net/{containerName}/{blobName}";
var blobClient = new BlobClient(new Uri(blobUri), credential);
using FileStream fileStream = File.OpenRead(filePath);
await blobClient.UploadAsync(fileStream, new BlobHttpHeaders { ContentType = "application/octet-stream" });
Console.WriteLine("File uploaded successfully!");
}
}
}
回复:
为了确认,我在 Azure 门户中检查了相同的内容,其中文件已成功上传,如下所示: