紧接上文,.net core 阿里云接口之获取临时访问凭证_SunshineGGB的博客-CSDN博客

本文继续阿里云接口调用,将指定的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文件下载到流的介绍,做此记录,如有帮助,欢迎点赞关注收藏!

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

  1. 阿里云接口异常-Can not find endpoint to access

    最近在做公司的资产盘点,需要请求阿里云的接口获取公司的云服务器信息.在获取实例列表的过程中,通过异常机制捕获了 Can not find endpoint to access 这个错误.经过多次排查, ...

  2. java 阿里云接口实现发送短信验证码

    此刻自己做的小项目中,需要用到手机发送短信验证码实现注册功能,于是就去阿里云注册了账号,并实现随机发送验证码的功能 第一步:在阿里云官网登录注册   已有支付宝或淘宝的账号可以直接登录,最后需要实名认 ...

  3. asp.net core 阿里云消息服务(Message Service,原MQS)发送接口的实现

    最近在后台处理订单统计等相关功能用到了大力的mqs,由于官方没有实现asp.net core的sdk,这里简单实现了发送信息的功能,有兴趣的可以参考实现其他相关功能 using System;usin ...

  4. 阿里云利用web直传文件到oss服务器

    http://files.cnblogs.com/files/adtuu/oss-h5-upload-js-direct.tar.gz

  5. ThinkPHP3.2.3框架下接入阿里云短信服务接口实现:注册登录

    首先介绍下短信注册登录流程: 注册页面点击获取手机号验证码按钮,用jquery的click事件POST或GET方法把手机号发送到后台控制器: 后台控制器创建函数,收到手机号后生成随机码,例如:6位的随 ...

  6. ABP框架中短信发送处理,包括阿里云短信和普通短信商的短信发送集成

    在一般的系统中,往往也有短信模块的需求,如动态密码的登录,系统密码的找回,以及为了获取用户手机号码的短信确认等等,在ABP框架中,本身提供了对邮件.短信的基础支持,那么只需要根据自己的情况实现对应的接 ...

  7. PHP 上传文件至阿里云OSS对象存储

    简述 1.阿里云开通对象存储服务 OSS 并创建Bucket 2.下载PHP SDK至框架扩展目录,点我下载 3.码上code 阿里云操作 开通对象存储服务 OSS 创建 Bucket 配置Acces ...

  8. golang对接阿里云私有Bucket上传图片、授权访问图片

    golang对接阿里云私有Bucket上传图片.授权访问图片 1.为什么要设置私有bucket 公共读写:互联网上任何用户都可以对该 Bucket 内的文件进行访问,并且向该 Bucket 写入数据. ...

  9. 阿里云服务器(windows server2008)下安装SVN----杜恩德

    我想说的是如何在阿里云上建立SVN版本,供外网访问,上传代码 在阿里云服务器上安装svn与在本地安装是一样的, ----参考 http://blog.csdn.net/m0_37027631/arti ...

  10. Zabbix 监控阿里云RDS

    简介 Zabbix 监控阿里云RDS数据库.主要通过阿里云提供的API来进行监控. 需要在阿里云获取“用户AccessKey”指定ID,进行RDS监控. 环境 服务:Zabbix 3.0.28.zab ...

随机推荐

  1. 列表、集合、元组、字典、range

    #列表y = [1,2,3]# 追加y.append(4)print(y)#删除del y[3]print(y)#查询存放个数print(len(y))#查询位置内容print(y[0]) #正序pr ...

  2. 关于Go你不得不知道的小技巧

    目录 Go 箴言 Go 之禅 代码 使用 go fmt 格式化 多个 if 语句可以折叠成 switch 用 chan struct{} 来传递信号, chan bool 表达的不够清楚 30 * t ...

  3. 云原生学习笔记-1-docker

    一.基础环境说明 1.操作系统:Centos7.6:1master:2node 2.docker版本:docker-ce 19.03.8-3 二.docker安装 1.使用阿里镜像仓库,mirror. ...

  4. 网络编程:软件开发架构、架构总结、网络编程前戏、OSI七层协议简介、OSI七层协议之物理连接层、数据链路层、网络相关专业名词、OSI七层协议之网络层

    目录 软件开发架构 架构总结 网络编程前戏 OSI七层协议简介 OSI七层协议之物理连接层 OSI七层协议之数据链路层 网络相关专业名词 OSI七层协议之网络层 OSI七层协议之传输层 软件开发架构 ...

  5. phpexcel 小技巧

    //设置填充的样式和背景色$objPHPExcel->getActiveSheet()->getStyle( 'A1:AU1')->getFill()->setFillType ...

  6. python3的可迭代对象与迭代器对象

    可迭代对象与迭代器对象 通过一段简单的代码来理解这俩个概念 a = [1,2,3,4] for i in a: print(i) 这段代码很简单, 对 a 这个列表进行遍历, 然后打印输出每个元素, ...

  7. Windows机器下VSCode安装及使用CmakeLists编译工程demo

    使用VSCode, Mingw and Cmake写工程代码,从零开始写的那种,全过程分享...... 你若发现该帖中有待商榷的地方,还请指正赐教,先行拜谢了! 1 软件下载 1.1 vscode下载 ...

  8. 100以内能被7整除的前五个数-Java

    import java.util.HashSet; import java.util.Set; public class Demo { //100以内能够被7整除的前五个数 public static ...

  9. Python3.9.5安装

    参考教程1:https://www.cnblogs.com/xiaoyanhuo/p/16362875.html 参考教程2:https://www.cnblogs.com/feng18/p/5854 ...

  10. K近邻算法(k-nearest neighbor, kNN)

    K近邻算法(K-nearest neighbor, KNN) KNN是一种分类和回归方法. KNN简介 KNN模型3要素 KNN优缺点 KNN应用 参考文献 KNN简介 KNN思想 给定一个训练集 T ...