API REST Azure Data Lake Storage 2-го поколения с C#C#

Место общения программистов C#
Ответить
Anonymous
 API REST Azure Data Lake Storage 2-го поколения с C#

Сообщение Anonymous »

Я пытаюсь установить разрешения ACL для пользователя с помощью API REST Azure Data Lake Storage Gen2. Но я не могу найти способ сделать это.
Для этого я использовал следующую ссылку Microsoft: microsoft-link-path-update
Вот код, который я придумал с помощью C#. :

Код: Выделить всё

static async Task SetUpPermissions(string accessToken)
{
// Replace with your values
string accountName = "";
string filesystem = "";
string directoryOrFile = "";
string userObjectId = "";

// URL for setting ACL
string url = $"https://{accountName}.dfs.core.windows.net/{filesystem}/{directoryOrFile}?action= setAccessControl";

// Headers
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
client.DefaultRequestHeaders.Add("x-ms-version", "2023-08-03");
client.DefaultRequestHeaders.Add("x-ms-lease-action", "acquire-release");
client.DefaultRequestHeaders.Add("x-ms-date", DateTime.UtcNow.ToString("R"));
client.DefaultRequestHeaders.Add("x-ms-client-request-id", Guid.NewGuid().ToString());

// Body with ACL settings
string aclString = $"user:{userObjectId}:rwx,group::r-x,other::r--,mask::rwx,default:user:{userObjectId}:rwx,default:group::r-x,default:other::r--";
string body = $"[{{\"acl\": \"{aclString}\"}}]";

// Make the request
HttpContent content = new StringContent(body, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PatchAsync(url, content);

// Check the response
if (response.IsSuccessStatusCode)
{
Console.WriteLine("ACL set successfully");
}
else
{
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine($"Failed to set ACL: {response.StatusCode} {responseBody}");
}
}
}
Я получаю следующую ошибку:

"Не указан HTTP-заголовок, обязательный для этого запроса",

однако требуется только «x-ms-lease-action».

Подробнее здесь: https://stackoverflow.com/questions/786 ... th-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»