.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,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
9天前
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
8天前
|
存储 运维 安全
阿里云OSS的优势
【7月更文挑战第19天】阿里云OSS的优势
25 2
|
8天前
|
存储 API 开发工具
阿里云OSS
【7月更文挑战第19天】阿里云OSS
31 1
|
18天前
|
人工智能 对象存储
【阿里云AI助理】自家产品提供错误答案。阿里云OSS 资源包类型: 下行流量 地域: 中国内地通用 下行流量包规格: 300 GB 套餐: 下行流量包(中国内地) ,包1年。那么这个是每月300GB,1年是3600GB的流量;还是1年只有300GB的流量?
自家产品提供错误答案。阿里云OSS 资源包类型: 下行流量 地域: 中国内地通用 下行流量包规格: 300 GB 套餐: 下行流量包(中国内地) ,包1年。那么这个是每月300GB,1年是3600GB的流量;还是1年只有300GB的流量?
93 1
|
21天前
|
存储 弹性计算 对象存储
预留空间是什么?阿里云OSS对象存储预留空间说明
阿里云OSS预留空间是预付费存储产品,提供折扣价以锁定特定容量,适用于抵扣有地域属性的Bucket标准存储费用及ECS快照费。通过购买预留空间,如500GB通用预留+100GB标准-本地冗余存储包,用户可优化成本。
|
26天前
|
存储 Java Maven
大事件后端项目31--------文件上传_阿里云OSS_入门程序
大事件后端项目31--------文件上传_阿里云OSS_入门程序
|
26天前
|
存储 运维 Java
大事件后端项目30------文件上传_阿里云OSS_准备工作
大事件后端项目30------文件上传_阿里云OSS_准备工作
|
8天前
|
Kubernetes Java Linux
阿里云云效操作报错合集之调用CreateWorkitem接口报错503,是什么导致的
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
8天前
|
数据库连接 网络安全 数据库
阿里云云效操作报错合集之接口按迭代ID查询工作项查不到或查询结果不正确,是什么原因
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
8天前
|
持续交付 开发工具 对象存储
阿里云云效产品使用合集之构建物如何上传到阿里云OSS
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。