使用 CreateItemStreamAsync 在 Cosmos DB 中创建多个项目

时间:2021-01-29 20:07:20

标签: c# azure-cosmosdb azure-cosmosdb-sqlapi cosmosclient

我有一个文件(大约 1 GB),其中包含一个包含大量项目的 JSON 数组。这些项目应由 .NET 客户端读入(使用 Microsoft.Azure.Cosmos SDK v3.16.0)并使用批量执行在 Cosmos DB 集合中创建。

到目前为止,我已经使用 CreateItemAsync 创建项目,但这需要首先将文件反序列化为对象列表。改用 CreateItemStreamAsync 方法会更快吗?如果是这样,我如何使用包含一组项目的流来做到这一点?以下失败,状态码为 RequestTimeout,可能是因为该方法期望流只包含一个项目:

await using FileStream fs = File.OpenRead(path);
ResponseMessage response = await container.CreateItemStreamAsync(fs, partitionKey);
response.EnsureSuccessStatusCode(); // fails

我想我必须为单个文件流中的每个项目创建一个单独的流,但是如何不反序列化 JSON 数组?

0 个答案:

没有答案