我正在尝试将一些数据导出到 excel 并将该 excel 存储在 AWS S3 中。我们目前的架构是这样的,
我们从数据库中获取数据并根据需要对其进行操作。这是通过一个 API 调用完成的。
我们需要将该数据作为流传递给另一个 API(专门设计用于与 AWS S3 交互)
将该流作为 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
}
任何帮助都非常感谢!