.net core 阿里云接口之将指定的OSS文件下载到流

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 紧接上文,[.net core 阿里云接口之获取临时访问凭证](https://developer.aliyun.com/article/1363447?spm=a2c6h.13262185.profile.8.180876540j71A9 ".net core 阿里云接口之获取临时访问凭证")本文继续阿里云接口调用,将指定的OSS文件下载到流。直接上代码:```csharp/// <summary>/// 将指定的OSS文件下载到流/// </summary>/// <param name="args"></param>/// <returns></returns>[H

紧接上文,.net core 阿里云接口之获取临时访问凭证

本文继续阿里云接口调用,将指定的OSS文件下载到流。

直接上代码:

/// <summary>
/// 将指定的OSS文件下载到流
/// </summary>
/// <param name="args"></param>
/// <returns></returns>
[HttpPost, HttpGet, HttpOptions, CorsOptions]
public IActionResult DownloadSpecifiedOSSFileToStream(string fileName)
{
   
    if(string.IsNullOrWhiteSpace(fileName))
    {
   
        return ErrorResult("未获取到将要下载的文件名称!", 111101);
    }
    string accessKey = _configuration["Aliyun:CcementOss:AccessKey:Id"];
    string secretKey = _configuration["Aliyun:CcementOss:AccessKey:Secret"];
    string bucketName = _configuration["Aliyun:CcementOss:BucketName"];
    string endpoint = _configuration["Aliyun:CcementOss:Endpoint"];
    // 服务器将要存储文件的路径
    string downloadFilename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "DownLoadFile/");
    if(Directory.Exists(downloadFilename) == false) // 如果不存在就创建file文件夹
    {
   
        Directory.CreateDirectory(downloadFilename);
    }
    if(!string.IsNullOrWhiteSpace(accessKey) && !string.IsNullOrWhiteSpace(secretKey) && !string.IsNullOrWhiteSpace(bucketName) && !string.IsNullOrWhiteSpace(endpoint))
    {
   
        // 创建OssClient实例
        var client = new OssClient(endpoint, accessKey, secretKey);
        try
        {
   
            // 下载文件到流。OssObject 包含了文件的各种信息,如文件所在的存储空间、文件名、元信息以及一个输入流。
            var obj = client.GetObject(bucketName, fileName);
            using(var requestStream = obj.Content)
            {
   
                byte[] buf = new byte[1024];
                var fs = System.IO.File.Open(downloadFilename + fileName, FileMode.OpenOrCreate);
                var len = 0;
                // 通过输入流将文件的内容读取到文件或者内存中。
                while((len = requestStream.Read(buf, 0, 1024)) != 0)
                {
   
                    fs.Write(buf, 0, len);
                }
                fs.Close();
                return SuccessResult(fs);
            }
        }
        catch(Exception ex)
        {
   
            LogHelper.WriteErrorLog("下载文件出现异常,异常原因为:" + ex.Message);
            return ErrorResult("下载文件出现异常,异常原因为:" + ex.Message, 111150);
        }
    }
    else return ErrorResult("阿里云配置文件读取失败,请联系网站管理员!", 111102);
}

以上就是.net core 阿里云接口之将指定的OSS文件下载到流的介绍,做此记录,如有帮助,欢迎点赞关注收藏!

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
27天前
|
对象存储
minio临时凭证直传切换到阿里云oss
minio临时凭证直传切换到阿里云oss
56 1
|
5天前
|
存储 Oracle 关系型数据库
Typora+PicGo+super-prefix+阿里云OSS设置图床
Typora+PicGo+super-prefix+阿里云OSS设置图床
|
6天前
|
开发框架 前端开发 .NET
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
为了便于大家查找,特将之前开发的.Net Core相关的五大案例整理成文,共计440页,32w字,免费提供给大家,文章底部有PDF下载链接。
18 1
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
|
6天前
|
文字识别 安全 API
阿里云文字识别OCR的发票凭证识别功能可以通过API接口的形式进行调用
【2月更文挑战第5天】阿里云文字识别OCR的发票凭证识别功能可以通过API接口的形式进行调用
21 5
|
8天前
|
算法 BI API
C#/.NET/.NET Core优秀项目和框架2024年1月简报
C#/.NET/.NET Core优秀项目和框架2024年1月简报
|
10天前
|
弹性计算 网络安全
阿里云OpenAPI提供了多种接口来管理ECS实例
【2月更文挑战第1天】阿里云OpenAPI提供了多种接口来管理ECS实例
19 0
|
26天前
|
域名解析 应用服务中间件 对象存储
解决阿里云oss图片浏览器访问直接下载而不是打开
解决阿里云oss图片浏览器访问直接下载而不是打开
45 0
|
27天前
|
对象存储
阿里云oss-cloud-sdk-springboot3兼容问题
阿里云oss-cloud-sdk-springboot3兼容问题
32 0
|
2月前
|
弹性计算 网络安全
阿里云OpenAPI提供了多种接口来管理ECS实例,包括创建、删除、重启等操作
【1月更文挑战第22天】【1月更文挑战第107篇】阿里云OpenAPI提供了多种接口来管理ECS实例,包括创建、删除、重启等操作
208 6
|
2月前
|
算法 C#
C# .Net Core bytes转换为GB/MB/KB 算法
C# .Net Core bytes转换为GB/MB/KB 算法
13 0

热门文章

最新文章