netcore 上传文件到阿里云OSS问题

AliYunOSSHelper类:

namespace VOL.WebApi
{public class AliYunOSSHelper: IScopedDependency{private ILogger _logger;/// <summary>/// 阿里云帮助类/// </summary>/// <param name="logger"></param>/// <param name="configHelper"></param>public AliYunOSSHelper(ILogger<AliYunOSSHelper> logger){_logger = logger;}public AliYunOSSHelper(){}/// <summary>/// 阿里云上传底层方法,文件为IFormFile/// </summary>/// <param name="shop_code"></param>/// <param name="files"></param>/// <returns></returns>public async Task<List<string>> AliYunUpLoad(List<IFormFile> files/*, string name*/){List<string> ossfilesNameList = new List<string>();try{//阿里云oss相关参数,请自行补齐  oss-cn-shenzhen-internal.aliyuncs.com  aapi.oss-cn-shenzhen-internal.aliyuncs.com  //账户1//var endpoint = "https://oss-cn-beijing.aliyuncs.com";//var accessKeyId = "*";//var accessKeySecret = "*";//var bucket = "aapi";//var imageUrl = "https://*.oss-cn-beijing.aliyuncs.com";//账户2var endpoint = "http://oss-cn-beijing.aliyuncs.com";var accessKeyId = "*";var accessKeySecret = "*";var bucket = "cdn*";var imageUrl = "http://cdn*.oss-cn-beijing.aliyuncs.com";var write_client = new OssClient(endpoint, accessKeyId, accessKeySecret);var read_client = new OssClient(endpoint, accessKeyId, accessKeySecret);for (int i = 0; i < files.Count; i++){var file = files[i];var fname = DateTime.Now.ToString("yyyyMMddHHmmssffffff") + i + Path.GetExtension(file.FileName);using (var stream = file.OpenReadStream()){write_client.PutObject(bucket, fname, stream);}DateTime expiration = DateTime.Now.AddYears(20);var url = read_client.GeneratePresignedUri(bucket, fname, expiration);string urlstring = imageUrl + url.AbsolutePath;ossfilesNameList.Add(urlstring);}}catch (Exception ex){_logger.LogError(ex, "阿里云图片上传失败,ex=" + ex.Message);throw;}return ossfilesNameList;}}
}

启动项目注入:

services.AddScoped<AliYunOSSHelper>();

接口:

AliyunController

sing Aliyun.OSS;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using VOL.Core.Controllers.Basic;
using VOL.Service.IServices;
using VOL.Service.Services;namespace VOL.WebApi.Controllers
{[ApiController][Route("[controller]")]public class AliyunController : ControllerBase{public AliyunController(){ }private readonly AliYunOSSHelper _oSSHelper=new AliYunOSSHelper();/ <summary>/ 构造函数/ </summary>/ <param name="projectAppService"></param>//public AliyunStsController(AliYunOSSHelper oSSHelper)//{//    _oSSHelper = oSSHelper;//}/// <summary>/// 通用的图片上传,支持多图片上传 /// </summary>/// <param name="files"></param>/// <returns></returns>[HttpPost, Route("UploadPic"), AllowAnonymous][DisableRequestSizeLimit]public async Task<ActionResult> UploadPic(List<IFormFile> files){//15Mvar maxRequestLength = 1024 * 1024 * 15;List<string> filesName = new List<string>();if (files.Count == 0)    return Content("NoFile"+files.Count+ filesName, "text/html");else{for (var i = 0; i < files.Count; i++){var file = files[i];if (null == file || file.Length <= 0)return Content("格式不正确!", "text/html");if (file.Length > maxRequestLength){return Content("文件大小超出限制!", "text/html");}var fname = DateTime.Now.ToString("yyyyMMddHHmmssffffff") + i + Path.GetExtension(file.FileName);// if (!FileExtensionFun.CheckImageFileType(fname))//{//    return Content("上传的图片格式不正确", "text/html");//}}filesName = await _oSSHelper.AliYunUpLoad(files);}return Content(string.Join(",", filesName), "text/html");}} 
}

上传报错:

解决方案:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/579349.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows安全配置实验手册

访问控制策略&#xff08;L1940520022J&#xff09; 预备知识 Windows 7中&#xff0c;不仅有面向软件的限制方法&#xff0c;还增加了一种名为AppLocker的访问控制策略&#xff08;仅适用于企业版和旗舰版&#xff09;。 实验环境 操作系统类型&#xff1a;windows 7。 实…

二叉树OJ题——4.相同的树

100. 相同的树 - 力扣&#xff08;LeetCode&#xff09; /* 解题思路&#xff1a; 首先比较根节点是否相同&#xff0c;然后分别比较左右子树是否相同。 */bool isSameTree(struct TreeNode* p, struct TreeNode* q) {if(pNULL&&qNULL){return true;}if(pNULL||qNULL)…

利用html2Canvas将表格下载为html

给到我的需求是点击按钮时请求后端接口&#xff0c;根据后端返回的数据&#xff0c;生成表格,并将表格的内容直接下载为html,如下图。 平常做的下载都是后端返回二进制流&#xff0c;这次前端做下载那就必须把页面先画出来&#xff0c;因为下载下来的表格在页面上是不显示的&a…

直接插入排序和希尔排序

文章目录 前言概述直接插入排序本质分析代码总结 希尔排序一组一组排序多组同时进行完整的代码 总结 前言 排序&#xff1a; 所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性&#xff1a; …

浅谈Java反射中的getFields()方法和getDeclaredFields ()方法

目录 1. 概念2. getFields()方法2. getDeclaredFields()方法4. 总结 1. 概念 反射是Java中一种强大的机制&#xff0c;允许在运行时获取、检查和操作类、方法、字段等信息&#xff0c;而不需要在编译时知道这些信息。 其中字段&#xff08;Field&#xff09;在Java中是类中用…

Unity向Web服务器上传和下载图片

Unity向Web服务器上传和下载图片 如果本片有看不懂的请查看我上篇文章&#xff1a;[Unity与Web服务器Post&#xff0c;Get](https://blog.csdn.net/qq_42194657/article/details/103031573)一、上传和下载图片1.在Unity中创建一个RawImage并在WebManager.cs脚本中添加一个Textu…

模式识别与机器学习-特征选择和提取

模式识别与机器学习-特征选择和提取 特征选择一些距离测度公式独立特征的选择准则一般特征的散布矩阵准则 离散K-L变换 谨以此博客作为复习期间的记录。 常见分类问题的流程&#xff0c;数据预处理和特征选择提取时机器学习环节中最重要的两个流程。这两个环节直接决定了最终性…

mac电脑系统性能检测:Geekbench 6最新 for mac

Geekbench 6是一款跨平台的性能测试软件&#xff0c;旨在全面衡量电脑在不同任务和应用程序中的性能。它适用于Windows、macOS、Linux等操作系统&#xff0c;以及移动设备如Android和iOS。 Geekbench 6主要特点包括&#xff1a; 全面覆盖各种性能测试领域&#xff0c;包括CPU…

CTF-PWN-栈溢出-中级ROP-【BROP-1】

文章目录 BROP(Blind ROP)攻击条件攻击路线三种gadget函数参数构造利用PLT构造rdx的参数的gadget找输出函数的plt输出二进制文件内容利用plt表中存在跳转到got表中相应的地址 BROP(Blind ROP) 即没有得到源码或者可执行程序文件的情况的文件下&#xff0c;只有一个提供的功能端…

C++学习实践(一)高频面试问题总结(附详细答案)

文章目录 一、基础常见面试题1、数组和链表区别2、深拷贝和浅拷贝相关问题的区别3、a和a区别4、c内存模型5、四种强制转换和应用场景 二、指针相关1、指针和引用的区别2、函数指针和指针函数3、传指针、引用和值4、常量指针和指针常量5、野指针6、智能指针的用法 三、关键字作用…

mySQL事务与存储引擎

目录 mySQL事务 1.事务的概念 2.事务的ACID特点 3.多客户端同时访问一个表时&#xff0c;出现的一致性问题 4.事务的隔离级别 5.事务的隔离级别作用范围 查询全局事务隔离级别 设置全局事务隔离级别 ​编辑查询会话事务隔离级别 设置会话事务隔离级别 6.事务控制语句…

这一次,我准备了 20节 PyTorch 中文课程

对于刚接触深度学习的小白来说&#xff0c;PyTorch 是必会的框架。 只是&#xff0c;很多小伙伴还没来得及开启学习之路&#xff0c;一个最重要的问题就摆在了面前&#xff1a; PyTorch&#xff0c;该怎么学呢&#xff1f; 很多同学会自己在网上找资料&#xff0c;不仅耗费时间…

如何使用IIS代理iServeriPortal

刘大 这里写目录标题 前言1.IIS使用http协议&#xff0c;iServer&iPortal使用http协议具体操作1.1 开启IIS管理器&#xff0c;并安装APR组件和url重写组件1.3 启用代理1.4 添加URL重写规则1.4.1 设置保留原始主机标头1.4.2 修改注册表1.5 iPortal的额外配置1.5.1 增加新的入…

使用防火墙是否可以应对DDoS攻击?

很多游戏行业公司对网络安全不够了解&#xff0c;觉得装个防火墙就可以万事大吉了。实际上使用防火墙确实是解决DDoS攻击问题的一种有效方法&#xff0c;一些更先进的防火墙还可以采用其他防御措施&#xff0c;例如:深度包检测、行为分析、人工智能等&#xff0c;来识别和防御各…

Vi文本编辑器如何使用,这里有详细步骤

Vi是一个强大的文本编辑器&#xff0c;包含在大多数Linux系统中&#xff0c;甚至是嵌入式系统中。有时&#xff0c;你必须在不包括更友好的文本编辑器的系统上编辑文本文件&#xff0c;因此了解Vi是至关重要的。 与Nano不同&#xff0c;Nano是一款易于使用的终端文本编辑器&am…

Shell 脚本应用(四)

正则表达式概述 正则表达式又称正规表达式&#xff0c;常规表达式。在代码中常简写为regex&#xff0c;regexp 或RE.正则表达式 是使用单个字符串来描述&#xff0c;匹配一系列符合某个句法规则的字符串&#xff0c;简单来说&#xff0c;是一种匹配字符串 的方法&#xff0c;通…

JVM入门到入土-Java虚拟机寄存器指令集与栈指令集

JVM入门到入土-Java虚拟机寄存器指令集与栈指令集 HotSpot虚拟机中的任何操作都需要入栈和出栈的步骤。 由于跨平台性的设计&#xff0c;Java的指令都是根据栈来设计的。不同平台CPU架构不同&#xff0c;所以不能设计为基于寄存器的。优点是跨平台&#xff0c;指令集小&#x…

PyCharm安装PyQt5一系列工具

目录 目录 一、安装IDE 二、安装Pycharm 三、Pycharm内安装一系列工具 1.新建一个项目 2.点击左上角File-Setting-点击加号 3.添加环境变量 4.配置qtdesigner,pyuic,pyrcc 三、用Pyinstaller打包成exe&#xff08;简单版&#xff09; 四、我的解释器装在了中文路径&a…

如何分析信号的频率信息?

1 简介 当信号的频率信息是已知的&#xff0c;或者近似已知的&#xff0c;则采样频率容易选择&#xff0c;选择最大采样频率的2倍以上(奈奎斯特采样)。 这里&#xff0c;将讨论信号频率未知的情况。尤其是&#xff0c;考虑如何避免混叠错误。 2 低通滤波(反混叠) 去除混叠错…

二、基于图像和结构化数据多模态融合的回归预测网络【框图讲解+源码】

整理读研期间做的项目与日常小实验 本篇未完待续…代码部分整理后补充 0. 背景 实验室有一些材料的SEM&#xff08;扫描电镜&#xff09;图像、也有对应的组分信息&#xff08;结构化数据&#xff0c;包含类别特征和连续的数值特征&#xff09;&#xff0c;以及对应的力学性能…