Как создать папку в Fabric Lakehouse / Files через API Onelake (400 плохой запрос / outmeryoperationUntrust)?C#

Место общения программистов C#
Ответить
Anonymous
 Как создать папку в Fabric Lakehouse / Files через API Onelake (400 плохой запрос / outmeryoperationUntrust)?

Сообщение Anonymous »

Я пытаюсь создать подпапки в /файлы в ткани -озеро, используя API Onelake. https://onelake.dfs.fabric.microsoft.co ... ryобразное. https://storage.azure.com/.default, что, я считаю, должен быть правильным.

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

public async Task CreateLakehouseFolderAsync(
Guid workspaceId,
Guid lakehouseId,
CreateLakehouseFolderRequest createLakehouseFolderRequest,
CancellationToken cancellationToken)
{
var token = await _credential.GetTokenAsync(
new TokenRequestContext(["https://storage.azure.com/.default"]),
cancellationToken);

using var request = new HttpRequestMessage(
HttpMethod.Put,
$"https://onelake.dfs.fabric.microsoft.com/{workspaceId}/{lakehouseId}.Lakehouse/Files/{createLakehouseFolderRequest.Name}?resource=directory");

request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token.Token);

await _httpClient.SendAsync(request, cancellationToken);
}
Это постоянно возвращает 400 плохой запрос.var serviceClient = new DataLakeServiceClient(
new Uri("https://onelake.dfs.fabric.microsoft.com"),
new DefaultAzureCredential());

var fileSystem = serviceClient.GetFileSystemClient($"{workspaceId}");
var directory = fileSystem.GetDirectoryClient($"{lakehouseId}/Files/{createLakehouseFolderRequest.Name}");

await directory.CreateIfNotExistsAsync(cancellationToken: cancellationToken);
< /code>
Но здесь я получаю: < /p>

requestfailedException: входящий запрос не доверяет. /> {"error": {"code": "ugingOperationUntrusted", "Сообщение": "Входящий запрос не доверяет."}} < /p>
< /blockquote>
Я также пытался использовать общий ток: < /p>
public async Task CreateLakehouseFolderAsync(
Guid workspaceId,
Guid lakehouseId,
CreateLakehouseFolderRequest createLakehouseFolderRequest,
CancellationToken cancellationToken)
{
ArgumentNullException.ThrowIfNull(createLakehouseFolderRequest);
ArgumentException.ThrowIfNullOrEmpty(createLakehouseFolderRequest.Name);

var dfsCredential = new ScopedTokenCredential(
new DefaultAzureCredential(),
"https://onelake.dfs.fabric.microsoft.com/.default");

var serviceClient = new DataLakeServiceClient(
new Uri("https://onelake.dfs.fabric.microsoft.com"),
dfsCredential);

var fileSystem = serviceClient.GetFileSystemClient($"{workspaceId}");

var directory = fileSystem.GetDirectoryClient(
$"{lakehouseId}/Files/{createLakehouseFolderRequest.Name}");

var response = await directory.CreateIfNotExistsAsync(cancellationToken: cancellationToken);

if (response == null)
{
Console.WriteLine($"Folder '{createLakehouseFolderRequest.Name}' already exists.");
}
else
{
Console.WriteLine($"Created folder '{createLakehouseFolderRequest.Name}' in Lakehouse {lakehouseId}");
}
}

private sealed class ScopedTokenCredential(TokenCredential inner, params string[] scopes)
: TokenCredential
{
public override AccessToken GetToken(TokenRequestContext requestContext, CancellationToken cancellationToken) =>
inner.GetToken(new TokenRequestContext(scopes), cancellationToken);

public override ValueTask GetTokenAsync(TokenRequestContext requestContext, CancellationToken cancellationToken) =>
inner.GetTokenAsync(new TokenRequestContext(scopes), cancellationToken);
}
< /code>
Но с этим он не удается со следующей ошибкой: < /p>

azure.identity.credentialunavailableexception: 'DefaultaUrecredentialse не удалось извлечь токен из включенных учетных данных. Смотрите Руководство по устранению неполадок для получения дополнительной информации. https://aka.ms/azsdk/net/identity/defau ... otобразное. Переменные среды не полностью настроены. Смотрите Руководство по устранению неполадок для получения дополнительной информации. https://aka.ms/azsdk/net/identity/envir ... oubleshoot
[*] workloadidentitycredential аутентификация недоступна. Параметры рабочей нагрузки не полностью настроены. Смотрите Руководство по устранению неполадок для получения дополнительной информации. https://aka.ms/azsdk/net/identity/workl ... oubleshoot
[*] ManagedIdentityCredential Authentication недоступен. Нет ответа, полученного из конечной точки управляемой идентификации. < /Li>
Process "C: \ Program Files \ Microsoft Visual Studio \ 2022 \ Professional \ Common7 \ IDE \ Commonextensions \ Microsoft \ ASAL \ Tokenservice \ Microsoft.asal.tokenservice.exe" имеет невыполненную ошибку с неожиданным ошибкой: ts003: ts. 'Wam error

код ошибки: 3399614475 Сообщение об ошибке: inforctConfiguration
WAM Ошибка Сообщение об ошибке: V2ERROR: Invalid_Resource AADSTS500011: Принцип ресурса по имени https://onelake.dfs.fabric.microsoft. Это может произойти, если приложение не было установлено администратором арендатора или согласии каким -либо пользователем в арендаторе. Возможно, вы отправили свой запрос на аутентификацию неправильному арендатору.
Код внутренней ошибки: 508634112
Возможные причины: < /li>
Недопустимый uri - убедитесь, что вы настроили следующий URL в регистрации приложения в портале Azure: ms-appx-web: //microsoft.aad.brokerplugin/04f0c124-f2bc-4f59-8241-bf6df9866bbd
'.


Вопрос:

infortion obleaser in lakehous /Files?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... -bad-reque
Ответить

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

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

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

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

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