извините за мой engli sh.
Я взаимодействую с Azure admin rest API, и я хочу программно создать токен SAS. В Azure документации объясняется для C # (я прилагаю код ниже), но мне нужно реализовать его в Python (я новичок), и я не могу получить кодировку данных и процесс подписания правильно, хотя я искал много информации и тестировал разными способами. Может ли кто-нибудь помочь мне «перевести» этот код ?. Большое спасибо.
c#
using System;
using System.Text;
using System.Globalization;
using System.Security.Cryptography;
public class Program
{
public static void Main()
{
var id = "account-name";
var key = "account-key";
var expiry = DateTime.UtcNow.AddDays(10);
using (var encoder = new HMACSHA512(Encoding.UTF8.GetBytes(key)))
{
var dataToSign = id + "\n" + expiry.ToString("O", CultureInfo.InvariantCulture);
var hash = encoder.ComputeHash(Encoding.UTF8.GetBytes(dataToSign));
var signature = Convert.ToBase64String(hash);
var encodedToken = string.Format("SharedAccessSignature uid={0}&ex={1:o}&sn={2}", id, expiry, signature);
Console.WriteLine(encodedToken);
}
}
}