为什么在调用azure数据湖gen2的put文件api时出现丢失的头错误?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么在调用azure数据湖gen2的put文件api时出现丢失的头错误?相关的知识,希望对你有一定的参考价值。

我试图直接调用gen2 rest端点并继续收到我错过了必需标头的错误(MissingRequiredHeader消息未指定此请求必需的HTTP标头。我无法看到缺少哪个标头。我正在使用以下代码发送请求。

var client = new HttpClient();

client.BaseAddress = new Uri($"https://{account}.dfs.core.windows.net/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("api_version", "2018-11-09");
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _authResult.AccessToken);

string azPath = $"{baseRawSystemPath}/{path.Replace("\", "/")}";

byte[] bytes = Encoding.UTF8.GetBytes(content);
HttpContent body = new StringContent(content, Encoding.UTF8, "application/json");

HttpResponseMessage response = await client.PutAsync(azPath, body);
if (response.IsSuccessStatusCode)
{
    var responseListingJson = await response.Content.ReadAsStringAsync();
    return;
}
else
{
    var error = await response.Content.ReadAsStringAsync();
    return;
}
答案

只是回答我自己的问题......我错过了resource = file查询字符串参数。这允许请求成功并创建文件。

以上是关于为什么在调用azure数据湖gen2的put文件api时出现丢失的头错误?的主要内容,如果未能解决你的问题,请参考以下文章

构建企业级数据湖?Azure Data Lake Storage Gen2不容错过(上)

azure datalake (gen2) 日志中的用户 ID

触发 Azure 数据工厂管道 - Blob 上传 ADLS Gen2(以编程方式)

AZ 突触链接的 Dataverse 表在 AZ 数据湖 Gen2 中消失

将数据从 ADLS Gen2 加载到 Azure Synapse 时出错

使用 Python 或 Java 从本地将数据上传到 Azure ADLS Gen2