C#如何将本地文件上传至阿里云OSS中

要想将文件上传至OSS,那么阿里云的AccessKeyId和AccessKeySecret必不可少

一.去哪找AccessKeyId和AccessKeySecret

进入阿里云工作台,点击右上角头像,选择AccessKey管理,就能看到ID了在这里插入图片描述
但是Secret目前阿里云不支持查看了,如果你不知道密码的话,可以新创建一个AccessKey,它会将新的ID和Secret都告诉你,并提供一个csv文件,csv文件保存好哦,后续可以直接在文件中查看ID和密码

二.上传至OSS还需要什么信息

除了上面说的ID和Secret,还需要EndpointBucket名字
1.Endpoint在哪找?
点击工作台里的对象存储OSS,选择左侧栏的Bucket列表,点击你想要上传文件的Bucket,然后点击概述,最下方就能看到提供的访问端口,这里复制外网接口即可
在这里插入图片描述
需要注意的是,最好将Bucket的读写权限设置为公共读写,否则你最后拿到的链接会有时间或权限的约束。
如果你还没有Bucket,新创建一个就行
在这里插入图片描述
我是选择了红框里的几个选项,供参考。
2.Bucket去哪找?
Bucket名字就很好找了,就是Bucket的名字

三.安装阿里云OSS SDK

  1. Unity项目中,想将文件上传至OSS,必须要下载阿里云OSS SDK。这里选择**.Net**的安装包https://oss.console.aliyun.com/sdk
    在这里插入图片描述
  2. 下载解压后,找到此文件,在VS中打开
    在这里插入图片描述
    打开后,在此文件上右键,选择属性
    在这里插入图片描述
    将程序集名称改为Aliyun.OSS在这里插入图片描述
    改好后,点击菜单栏的生成生成解决方案,便会生成一个dll文件
    在这里插入图片描述
    到此,返回刚才解压的SDK文件夹,去这个路径下,找到Aliyun.OSS.dll文件

在这里插入图片描述
将此文件拽入你的Unity项目即可,可放在任意位置
这里我是放在了Assets文件夹下
在这里插入图片描述

三.如何上传至OSS

上面这四个元素都找到之后,先创建一个类吧 ,将四个变量放进去

public class Config
{
    public const string AccessKeyId = "XXXXX";
    public const string AccessKeySecret = "XXXXX";
    public const string EndPoint = "oss-cn-beijing.aliyuncs.com";
    public const string Bucket = "XXXXX";

}

之后,来创建OssClient对象,他可以帮助我们完成上传操作,具体代码如下

//必须要将Aliyun.OSS.dll文件放入Unity项目中,才能生效,否则会报错
using Aliyun.OSS;
using Aliyun.OSS.Common;

// Oss对象,文件名变量,文件路径 
private OssClient ossClient;
//文件名需要带后缀的,如 1.txt
public string fileName = "";
//filePath为本地文件路径
public string filePath = "";

try
   {
      ossClient = new OssClient(Config.EndPoint, Config.AccessKeyId, Config.AccessKeySecret);
      //直接放在指定Bucket中
      ossClient.PutObject(Config.Bucket, fileName, filePath);
      //放在指定Bucket下的mp3文件夹中,如果没有此文件夹,会自动创建
      //ossClient.PutObject(Config.Bucket, "mp3/" + fileName, filePath);
      Debug.Log("本地上传成功:" + fileName);
   }
catch (OssException e)
{
     Debug.Log("本地上传报错:" + e.Message);
}
catch (System.Exception e)
{
     Debug.Log("本地上传报错:" + e.Message);
}

上面两个代码块,即可实现本地文件的OSS上传,你可以去阿里云查看一下是否上传成功

四.怎么拿到OSS上文件的链接

那我们将文件上传至OSS, 已知文件名即fileName和EndPoint,便可自行拼凑出链接

string url = "https://" + Config.Bucket + "." + Config.EndPoint + "/" + fileName;
Debug.Log("上传至oss后,资源对应的url:" + url);

如果你上传到了指定Bucket下的某个文件夹中,例如上传至mp3文件夹,拼的时候带着文件夹名字就ok啦

string url = "https://" + Config.Bucket + "." + Config.EndPoint + "/mp3/" + fileName;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

小H靶场笔记:DC-7

DC-7 January 8, 2024 4:11 PM Tags:Drupal 8;Drush Owner:只惠摸鱼 信息收集 使用arp-scan和nmap扫描C段存活主机,探测到靶机ip:192.168.199.137,且开放80、22端口 探测22、80开放端口的服务、版本、操…

Neo4j恢复

主要记录windows环境下从备份文件中恢复Neo4j, Linux环境同理 备份在上一篇中有介绍,参考: Neo4j备份-CSDN博客 误删数据 为了模拟误删除场景,我们查询Person,并模拟误操作将其进行删除; match(p:Person) return …

Linux的Inode号和日志服务管理

目录 一、Inode号 1.inode和block 2.查看inode信息 二、日志服务管理 1.日志的级别 2.日志的种类 3.日志的功能和日志文件的分类 4.日志的格式和分析工具 三、rsyslog日志处理系统 1、使用Rsyslog创建日志优点 2、Rsyslog配置文件解析 3.通过rsyslog将ssh服务的日志…

逆剑苍穹2_唯美仙侠手游3D剑舞乾坤手游_WIN学习手工端_无IP数限制_通用视频教程_安卓_GM物品充值后台

逆剑苍穹2_唯美仙侠手游3D剑舞乾坤手游_WIN学习手工端_无IP数限制_通用视频教程_安卓_GM物品充值后台 源码内置视频和文档搭建教程感兴趣可自行下载学习

凸优化—常见分式规划解决方法及代码实现

分式规划是凸优化中常见的问题,例如最大化能效等。这篇博客介绍了single-ratio 分式规划的二种常见方法。 1、Quadratic transform 2、 Dinkelbachs Transform 优化问题 一个简单的优化问题 如何使用上述二种方法来计算呢? Quadratic transform 代码复现 %% 方法2:Quadrat…

leecode | 字符串中的额外字符

题意:给定一个s字符串,和一个字典 字符串数组d,现在将字符串通过字典中的字符串数组把s切分,求最后剩下无法再切的字符串的长度思路:动态规划 倒着切 s[n-1] 切不了 那么问题转换成 n-1 找到找到一个j 使得 s[j, n-1]…

Hystrix服务熔断机制

熔断机制 熔断机制是应对雪崩效应的一种微服务链路保护机制,当系统链路中的某个微服务出现错误不可用或者响应时间太长的时候就会进行服务的降级,进而熔断该服务的调用,快速返回熔断的响应信息。当检测到该节点微服务调用正常后,…

Visual Studio 2022 AI Code 支持

1.先在 Log In | Codeium Free AI Code Completion & Chat 上注册一个用户 在Visual Stuido 中扩展中搜索 codeium 并安装 安装完成后登录即可。 注意国内可能存在网络问题无法使用这时建议使用代理进行登录。 地址如下: Sign Up | Codeium Free AI Code Co…

数组中元素的插入和查找算法探究

数组的查找 线性查找 概念 线性查找也叫顺序查找,这是最基本的一种查找方法,从给定的值中进行搜索,从一端开始逐一检查每个元素,直到找到所需元素的过程。 元素序列的排列可以有序,也可以无序。 代码实现 public cl…

1-06格式化输入和输出

一、概述 格式化输入和输出其实指的就是C语言标准函数库<stdio.h>中的&#xff1a; scanf函数&#xff0c;用于从键盘读取输入。printf函数&#xff0c;用于向屏幕输出信息。 它们是C语言当中使用非常非常频繁的两个函数&#xff0c;所以很重要。 这两个函数的基本使…

SAP 表TPALOG 查询请求号的查询记录

SE16N输入表 TPALOG &#xff0c;查看到如下界面

Linux下Redis6下载、安装和配置教程-2024年1月5日

Linux下Redis6下载、安装和配置教程-2024年1月5日 一、下载二、安装三、启动四、设置开机自启五、Redis的客户端1.Redis命令行客户端2.windows上的图形化桌面客户端 一、下载 1.Redis的官方下载&#xff1a;https://redis.io/download/ 2.网盘下载&#xff1a; 链接&#xff…

stm32---输入捕获实验实操(巨详细)

这次来分享上次没说完的输入捕获的知识点 实验中用到两个引脚&#xff0c;一个是通用定时器 TIM3 的通道 1&#xff0c;即 PA6&#xff0c;用于输出 PWM 信号&#xff0c;另一 个是高级控制定时器 TIM1 的通道 1&#xff0c;即 PA8&#xff0c;用于 PWM 输入捕获&#xff0c;实…

rpm数据库被破坏,无法使用yum

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 问题描述&#xff1a; 云服务器在安装了开源的HIDS插件后&#xff0c;发现安装了插件的服务器全部突然无法正常使用yum安装软件…

HTML JavaScript 康威生命游戏

<!DOCTYPE html> <html> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>康威生命游戏</title><style>body {font-family: Arial, sa…

Adobe XD是什么?探索这款创新的用户体验设计工具

Adobexd是一种基于矢量的设计工具&#xff0c;主要用于设计移动和Web应用程序的用户界面(UI)。与Photoshop或ilustrator等其他Adobe产品相比&#xff0c;它相当轻。对于对快速设计和原型迭代感兴趣的界面设计师来说&#xff0c;轻量级并不是一件坏事。 在早期&#xff0c;Adob…

LINUX常见问题之SYN flooding

一、什么是 SYN flooding&#xff1f; SYN Flood是流行的DoS&#xff08;拒绝服务攻击&#xff09;与DDoS&#xff08;分布式拒绝服务攻击&#xff09;的方式之一&#xff0c;这是一种利用TCP协议缺陷&#xff0c;发送大量伪造的TCP连接请求&#xff0c;塞满TCP等待连接队列&am…

12.字符串和正则表达式

使用正则表达式 正则表达式相关知识 在编写处理字符串的程序或网页时&#xff0c;经常会有查找符合某些复杂规则的字符串的需要&#xff0c;正则表达式就是用于描述这些规则的工具&#xff0c;换句话说正则表达式是一种工具&#xff0c;它定义了字符串的匹配模式&#xff08;…

基于 TensorFlow.js 构建垃圾评论检测系统

基于 TensorFlow.js 构建垃圾评论检测系统。 准备工作 在过去的十年中&#xff0c;Web 应用变得越来越具有社交性和互动性&#xff0c;而即使是在中等热门的网站上&#xff0c;也有数万人可能实时对多媒体、评论等的支持。 这也让垃圾内容发布者有机会滥用此类系统&#xff0c…

如何做到高可用、高吞吐、高扩展性

如何做到高可用、高吞吐、高扩展性 本文转自 公众号 ByteByteGo&#xff0c;如有侵权&#xff0c;请联系&#xff0c;立即删除 我们经常需要设计具有高可用性、高可扩展性和高吞吐量的系统。它们的确切含义是什么&#xff1f; 下图是一份系统设计小抄&#xff0c;包含“三高”…