【发布时间】:2020-01-25 21:00:36
【问题描述】:
我正在使用文件流上传证据文件以进行条带化,但应用程序托管在不支持文件流的 aws lambda 中。
这是我的代码
public async Task<IActionResult> PostFile(D.StripeFilePurpose stripeFilePurpose)
{
IFormFile file = Request.Form.Files[0];
var fileName = ContentDispositionHeaderValue.Parse(
file.ContentDisposition).FileName.Trim('"');
var path = string.Empty;
var webRootPath = _hostingEnvironment.WebRootPath;
if (string.IsNullOrEmpty(webRootPath))
{
path = Directory.GetCurrentDirectory();
}
string fileId;
var filePath = Path.Combine(path, fileName);
using (var fileStream = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
file.CopyTo(fileStream);
}
using (var stream = new FileStream(filePath, FileMode.Open))
{
var stripeFileUpload = await _stripeDisputeService
.UploadFileAsync(
fileName,
stream,
stripeFilePurpose.GetDescription());
fileId = stripeFileUpload.Id;
}
return StatusCode(200, fileId);
}
每当指定文件路径时,lamba 都会将其附加到 /var/task/**mypath。
我什至硬编码文件路径仍然在文件路径之前附加 /var/task。我搜索并发现只有将文件存储在 /tmp 文件夹(lambda)中才能进行流式传输..
如何做到这一点??
【问题讨论】:
标签: c# amazon-web-services aws-lambda stripe-payments