【问题标题】:Create text file in memory then upload it to Azure Blob Storage在内存中创建文本文件,然后将其上传到 Azure Blob 存储
【发布时间】:2021-03-31 13:32:28
【问题描述】:

现在我正在借助库在内存中创建 Parquet 文件,并将其上传到 Azure Blob storage。不过,这次我想要一些更简单的东西,即只需一个文本文件即可将DateTime.UtcNow 写入内存中的文本文件并上传到 Azure。

到目前为止我的代码:

BlobServiceClient BlobServiceClient = new BlobServiceClient("my_code");
var containerClient = BlobServiceClient.GetBlobContainerClient("my_container");
var blobClient = containerClient.GetBlockBlobClient($"path/to/specific/directory/file.parquet");

using (var outStream = await blobClient.OpenWriteAsync(true).ConfigureAwait(false))
using (ChoParquetWriter parser = new ChoParquetWriter(outStream))
{
   parser.Write(data_list);
}

如果没有ChoParquetWriter,我如何在内存中创建文本文件,这是我正在使用的库的一部分?

更新:找到解决方案

using (var outStream = await blobClient4.OpenWriteAsync(true).ConfigureAwait(false))
            { 
                byte[] bytes = null;
                using (var ms = new MemoryStream())
                {
                    TextWriter tw = new StreamWriter(ms);
                    tw.Write(RequestTime.ToString());
                    tw.Flush();
                    ms.Position = 0;
                    bytes = ms.ToArray();
                    ms.WriteTo(outStream);
                }
            }

有没有更简单的方法?如果不是这样也没关系

【问题讨论】:

  • 试试System.IO.TextWriter
  • RequestTime 有什么魔力?

标签: c# azure azure-blob-storage memorystream


【解决方案1】:

如果直接使用UploadAsyncUpload方法会简单一些。

例如:

        //other code
        var blobClient4 = containerClient.GetBlockBlobClient("xxx");

        using (var ms = new MemoryStream())
        {
            StreamWriter writer = new StreamWriter(ms);
            writer.Write(RequestTime.ToString());
            writer.Flush();
            ms.Position = 0;
            await blobClient4.UploadAsync(ms);                
        }

【讨论】:

    【解决方案2】:

    我可能过于简单化了,但是您创建的文本编写器不能直接写入 outStream 吗?只需确保将文本编写器也包含在 using 语句中,以便正确刷新...

    【讨论】:

      猜你喜欢
      • 2017-01-24
      • 2017-08-19
      • 2020-11-02
      • 2019-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 1970-01-01
      相关资源
      最近更新 更多