前段时间因为公司项目中要求将阿里oss文件下载到本地,按照网上的资源下载错误,之后自己重新找了一个方法,且能下载成功,代码如下
/// <summary>
/// OSS获取文件
/// </summary>public byte[] GetFile(string fileObjectName)
{
// 创建OSS客户端对象
var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
try
{
// 从OSS下载文件内容
var getObjectRequest = new GetObjectRequest(bucket, fileObjectName);
using (var ossStream = client.GetObject(getObjectRequest).Content)
{
using (var memoryStream = new MemoryStream())
{
ossStream.CopyTo(memoryStream);
return memoryStream.ToArray();
}
}
}
catch (Exception ex)
{
Console.WriteLine("获取文件异常", ex.Message);
throw new Exception("获取文件异常!" + ex.Message);
}
}
调用之后进行下载
string savePath = "C:\\Users\\Username\\Documents\\file.txt";
if (!System.IO.File.Exists(savePath))
{
// 调用GetFile方法并获取返回的流
var fileBytes = _ossService.GetFile(xliffpath);
// 创建一个新的文件流
using (FileStream fileStream = new FileStream(savePath, FileMode.Create))
{
// 使用 BinaryWriter 将文件字节数组写入文件流
using (BinaryWriter writer = new BinaryWriter(fileStream))
{
writer.Write(fileBytes);
writer.Flush();
}
}
}