如何解决Azure DataLakeStore File Content-Disposition Added in file?

How to Solve Azure DataLakeStore File Content-Disposition Added in file?

我已将文本文件或图像文件或 Zip 文件上传到 Azure Data Lake Store。它已上传成功。但是,之前在文件中添加了一些内容。 我使用 Rest API 上传了一个文件。 (在C#中使用HttpClient上传文件)

此类内容已添加到

---b8b2dfc6-6128-43b5-8fb8-022820aedf02

Content-Disposition: form-data; name=file1; filename=tick.txt; filename*=utf-8''tick.txt

如果添加的内容如此,图像文件和 zip 文件无法在 Viewer/Explore 中打开。

如何删除文件中添加的此类 header 来自 Upload.Here 我分享了我的文件上传代码。

public object UploadFile(string srcfile, string destFilePath, bool force = true)
{
  var uploadurl = string.Format(UploadUrl, _datalakeAccountName, destFilePath);
  var stream = File.OpenRead(srcfile);
  HttpContent fileStreamContent = new StreamContent(stream);
  using (var client = new HttpClient())
  {
      client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _accesstoken.access_token);
      using (var formData = new MultipartFormDataContent())
        {
          formData.Add(fileStreamContent, "file1", Path.GetFileName(srcfile));
           var response = client.PutAsync(uploadurl, formData).Result;
           return new { Status = response.StatusCode, Message = response.ReasonPhrase, details = response.ToString() };
         }
   }
 }

提前致谢。

请尝试使用以下代码,它在我这边工作正常。

 public object UploadFile(string srcfile, string destFilePath, bool force = true)
    {
        var uploadurl = string.Format(UploadUrl, _datalakeAccountName, destFilePath);
        var stream = File.OpenRead(srcfile);
        HttpContent fileStreamContent = new StreamContent(stream);
        using (var client = new HttpClient())
        {
            client.DefaultRequestHeaders.Authorization = new
                AuthenticationHeaderValue("Bearer",  _accesstoken.access_token);
            client.DefaultRequestHeaders
                .Accept
                .Add(new MediaTypeWithQualityHeaderValue("application/octet-stream"));
            var response = client.PutAsync(uploadurl, fileStreamContent).Result;

            return new { Status = response.StatusCode, Message = response.ReasonPhrase, details = response.ToString() };
        }
    }