我正在尝试将一些数据导出到Excel并将该Excel存储在AWS S3中。我们当前的架构就像,
我们从数据库中获取数据并根据我们的需要对其进行操作。这是一次API调用。
我们需要将该数据作为流传递给另一个API(专门设计用于与AWS S3交互)
将该流存储为AWS S3中的Excel文件。
到目前为止,我所取得的成就是:
我能够从数据库中获取数据并将其转换为内存流。我已经写了另一个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
}
非常感谢任何帮助!!