0

我正在尝试将一些数据导出到 excel 并将该 excel 存储在 AWS S3 中。我们目前的架构是这样的,

  1. 我们从数据库中获取数据并根据需要对其进行操作。这是通过一个 API 调用完成的。

  2. 我们需要将该数据作为流传递给另一个 API(专门设计用于与 AWS S3 交互)

  3. 将该流作为 Excel 文件存储在 AWS S3 中。

到目前为止,我取得的成就是:

我能够从数据库中获取数据并将其转换为内存流。我编写了另一个 API 来接收这个流。但是无法将内存流从一个 API 传递到另一个 API。

第一个 API:

    public async Task<ICollection<UserDTO>> ExportUsers(Guid groupId, HttpRequestMessage request)
    {

       var ms = // get's memory stream out of data received from database.

          var client = new HttpClient
                             {
                               BaseAddress = new Uri("http://localhost:58025/")
                             };
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(
                    new MediaTypeWithQualityHeaderValue("application/bson"));

      MediaTypeFormatter bsonFormatter = new BsonMediaTypeFormatter(); 
    //Not sure about BsonMediaTypeFormmater. Juz gave it a try

       var response = await  client.PostAsync("http://localhost:58025/Resource/Memory", ms, bsonFormatter);
    }

第二个API:

   [HttpPost]
   [Route("Resource/Memory", Name = "UploadMemory")]
   public async Task<IHttpActionResult> UploadMemoryFile(MemoryStream memory)
   {
       // Not reaching until here
   }

任何帮助都非常感谢!

4

0 回答 0