如何解决从S3下载后移动文件
无法将文件从AWS S3下载到Downloads文件夹。但是,文件已从AWS S3服务器下载到中间本地服务器(E:\ New ** \ E *** \ wwwroot \ DownloadFiles)。现在,问题是将此文件从(\ DownloadFiles)此文件夹获取到Downloads文件夹。尝试这样做时会弹出错误消息。
return File(memory,tmpConType,Path.GetFileName(filePath));
错误弹出窗口
这是我下载的完整代码:
[HttpPost]
public async Task<ActionResult> DownloadFile(string fileName,string originalFilename,int clientId,int taskId)
{
using (LogContext.PushProperty("UserId",userId))
{
try
{
if (fileName != null && fileName != "")
{
var fName = fileName.Split("_")[0];
var s3Client = new AmazonS3Client(accesskey,secretkey,bucketRegion);
var s3companyFolder = "Company-" + companyId + "/" + "Client-" + clientId + "/" + "Job-" + taskId;
GetObjectRequest request = new GetObjectRequest
{
BucketName = bucketName + "/" + s3companyFolder,Key = fName
};
using (GetObjectResponse response = await s3Client.GetObjectAsync(request))
{
using Stream responseStream = response.ResponseStream;
string tmpName = response.Metadata["x-amz-meta-filename"];
var tmpConType = response.Headers["Content-Type"];
string filePath = Path.Combine(hostingEnvironment.WebRootPath,"DownloadFiles");
filePath = Path.Combine(filePath,tmpName);
using FileStream outFile = System.IO.File.Create(filePath);
responseStream.CopyTo(outFile);
outFile.Dispose();
responseStream.Dispose();
var memory = new MemoryStream();
using (var stream = new FileStream(filePath,FileMode.Open))
{
await stream.CopyToAsync(memory);
}
if (System.IO.File.Exists(filePath))
System.IO.File.Delete(filePath);
memory.Position = 0;
return File(memory,Path.GetFileName(filePath));
}
}
return Json(new { success = true });
}
catch (Exception ex)
{
throw;
}
}
}
预先感谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。