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

本文详细指导如何在阿里云OSS中上传文件,包括获取AccessKeyId和Secret、找到Endpoint、安装OSSSDK以及编写上传代码,同时介绍了如何获取上传后的文件链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要想将文件上传至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;
[LANGUAGE] ;主页面 System=系统管理 Stream=码流管理 Storage=存储管理 Accounts=用户管理 Network=网络管理 PTZ=云台管理 Exit=退出 ;系统管理 IPCam Setting=摄像机设置 Ok=确定 Cancel=取消 System Setting=系统设置 Maintenance=系统维护 Logs=日志管理 ;系统设置页面 Device name:=设备名称: Product SN:=产品序列号: Version:=软件版本: Product Type:=产品型号: Format:=日期格式: Date Time:=日期时间: CloudComputing ID:=云视通 ID: CloudComputing Port:=云视通 Port: CloudComputing Port Modified, Restart to Enable It ?=云视通端口号已修改,是否立即重启以使其生效? CloudSEE ID:=云视通 ID: CloudSEE Port:=云视通 Port: CloudSEE Port Modified, Restart to Enable It ?=云视通端口号已修改,是否立即重启以使其生效? Language:=系统语言: Web Service=Web服务 Enable mobile server=启动手机服务 Service Port:=服务端口: Quality:=图像质量: FPS:=图像帧率: Date...=设置时间... Default Setting=默认配置 Enable talk server=允许语音对讲 high=高 middle=中 low=低 25=最流畅 20=流畅 15=较流畅 10=低带宽 5=最低带宽 Time automatically=网络对时 NTP Server:=对时服务器: NTP Interval(Hour):=对时间隔(小时): Hour=小时 Time Setting=时间设置 Focus Helper=调焦辅助 ;系统维护页面 Update method:=系统升级: Select...=浏览... Progress:=升级进度: Update begin=升级 Cancel=取消 Restart=重启设备 Recovery=恢复系统 WEB Update=网站升级 File Update=文件升级 Device is busing refuse update request.=设备忙,拒绝升级请求 Start update module failed.=设备启动升级模块失败 Send data error.=传输数据出现错误 Burning:=烧写进度: Update Success=升级完成 Update Failed=升级失败 Open update file failed please check if the update file exist=打开文件失败,请检查升级文件是否存在! Open Version file fail=打开版本文件失败 Download:=下载进度: Restart the device, are you sure?=设备重启此连接将断开,是否确认? Recover the device, are you sure?=设备恢复配置需要重启此连接将断开,是否确认? Update the device, are you sure?=系统即将开始升级,是否继续? Update ok, restart the device now?=系统升级完成,是否立即重启摄像机? Latest version don't need update.=已经是最新版本! Upgrade file does not match.=升级文件不匹配 Checksum error!=升级文件校验错误! Update error please retry.=升级出错,请重新升级! User No Permission=用户无权限! Connect server failed.=连接升级服务器超时,请检查摄像机网络! Update with FTP Background. You can leave here now.=系统将在后台进行FTP升级,您现在可以退出本页面。 FTP Update=FTP 升级 ;日志管理页面 Date=日期 Refresh=刷新 Print=打印 Save=保存 File already exists overwrite it?=文件已经存在,是否覆盖? No Printer=未发现打印机 Print Fail=打印失败 Print %.4d-%.2d-%.2d Log, are you sure?=确实要打印%.4d年%.2d月%.2d日的系统日志清单吗? IPC Sys Note Info=网络摄像机系统日志记录清单 Print time:%.4d-%.2d-%.2d %.2d:%.2d=打印时间:%.4d年%.2d月%.2d日 %.2d点%.2d分 ;设置时间页面 Format:=日期格式: Date:=时间日期: ;升级服务器 Server01-U=联通1 Server02-T=电信1 Server03-T=电信2 OSD position:=OSD位置: LEFT_TOP=左上 LEFT_BOTTOM=左下 RIGHT_TOP=右上 RIGHT_BOTTOM=右下 HIDE=隐藏 ;视频管理 IPCam Setting=摄像机设置 Ok=确定 Cancel=取消 Video=视频设置 Region Cover=区域遮挡 Motion Detect=移动检测 Alarm Parameters=报警参数 ;视频设置页面 Video Stream1:=高清码流 Resolution:=分辨率: Frame Rate:=帧率: MBPH:=视频质量: Video Stream2:=标清码流 Mobile Phone Stream=互联网码流 Default Setting=默认配置 ;码率控制 Bitrate Control=码率控制 Min QP=最小QP Max QP=最大QP CBR=固定码率 VBR=可变码率 Max Qp Should be Bigger=最大QP应该比最小QP大 ;sensor调节 Image=图像调节 Brightness:=亮度: Saturation:=饱和度: Default Setting=默认配置 Contrast:=对比度: Sharpness:=锐度: Sence:=场景: InDoor=室内 OutDoor=室外 Default Setting=默认 Modeone=柔和 AUTO AWB=自动白平衡 MIRROR=画面镜像 TURN=画面翻转 NOCOLOUR=黑白模式 Enable WDR=开启宽动态 WDR Changed, Reboot to Effect ?=宽动态改变,是否重新启动使其生效? Software Cut:=软件CUT: Sensitivity:=灵敏度: WDR Not Support=此产品不支持宽动态 ;区域遮挡设置页面 Enable private area=开启视频遮挡 Refresh Photo=刷新图像 Save Settings=保存设置 Dragging the mouse for the area, right cancel area.=拖动鼠标选择区域,右键取消区域。 ;移动监测设置页面 Enable=启动移动检测 Sensitivity:=灵敏度: Send Alarm To Client=发送报警到客户端 Send Alarm E-Mail=发送报警到邮件 Refresh Photo=刷新图像 Save Settings=保存设置 ;报警设置页面 Alarm duration:=报警持续时间: E-Mail Setup=邮件设置 Sender:=发件人: Server:=服务器: UserID:=用户名: Passwd:=密码: Port:=端口: Crypto:=加密: Receiver1:=收件人地址1: Receiver2:=收件人地址2: Receiver3:=收件人地址3: Receiver4:=收件人地址4: Snapshot=抓拍设置 Default Setting=默认配置 Email Test=发送测试邮件 Email succeed, please check your mailbox=发送测试邮件成功,请去邮箱验证 Email fail, please check your parameter=发送测试邮件失败,请检查您的参数设置 Email Result=邮件测试结果 Seconds=秒 ;存储 None=未找到存储设备 Unformatted=未格式化 Storeage is full=存储设备已满 Recording...=录像中... Get ready=准备就绪 IPCam Setting=摄像机设置 Ok=确定 Cancel=取消 Storage Management=存储管理 ;用户管理页面 Start recording failed=开启录像失败 Stop recording failed=停止录像失败 Failed=格式化失败 Succeed=格式化完成 Store Card=存储卡 Already used=已使用 Stop Record=停止录像 Start Record=开始录像 Devices list:=设备列表: Refresh Lists=刷新列表 Device status:=设备状态: Used Space:=使用情况: Format=格式化 Format the SD card are you sure?=是否格式化SD卡? ;账户管理 IPCam Setting=摄像机设置 OK=确定 Exit=退出 Account Management=用户管理 ;用户管理页面 User Setting=帐号管理 User:=帐号: Group:=分组: Description:=说明: Password:=密码: Confirm:=确认密码: Refresh Lists=刷新列表 Add Account=增加 Delete=删除 Modify=修改 User=用户 Group=分组 Description=说明 Administrator=管理员 Common User=普通用户 New User=新帐户 User already exist please check the input!=用户已存在请检查用户名! Please input user and password!=请输入用户名和密码! The confirm passwd is different from passwd above!=两次密码输入不一致! Please input the user to delete!=请输入要删除的用户名! The user to delete is not exist!=要删除的用户不存在! Please input user and password to modify!=请输入要修改的用户名以及其密码! The user to modify is not exist!=要修改的用户不存在! The counts of user are limited!=用户已满! Password incorrect!=输入密码错误! Guest=访客 Please Select The Account=请选择帐户 No Permission !=用户无权限! ;登陆 Net Management=网络管理 Default Conn:=默认连接: ETH Conn:=有线连接 PPPOE Conn:=拨号连接 WIFI Conn:=无线连接 User Name:=用户名: Passwd:=密码: Refresh=刷新 Connect=连接 Net Info=网络信息 IP Address:=IP地址: Net Mask:=子网掩码: Gateway:=默认网关: DNS:=域名服务器: MAC:=网卡地址: YST ID:=云视通 ID: YST Status:=云视通状态: Online=在线 Offline=不在线 Disconnect=断开 Please Refresh Net List First!=请先刷新网络列表! User And Passwd Cann't Empty!=用户名或密码不能为空! Connecting=正在连接 Connect Succeed=连接成功 Connect Fail=连接失败 Connect Timeout=连接超时 Disconnecting=正在断开 Disconnect Succeed=断开成功 Disconnect Fail=断开失败 Disconnect Timeout=操作超时 Search In Net=搜索网络 Not Found In Net!=没有搜索到网络! Passwd Cann't Empty!=密码不能为空! ;网络管理 Network Management=网络管理 Network Type:=默认连接: Ethernet=有线连接 PPPOE=拨号连接 WIFI=无线连接 User ID:=用户名: Passwd:=密码: Search=搜索 Connect=连接 ID:=帐号: SSID:=无线SSID: Network Info=网络信息 IP:=IP地址: Netmask:=子网掩码: Gateway:=默认网关: DNS:=域名服务器: MAC:=网卡地址: DHCP=自动获取地址 #if(JVS_N72A_ISMART) CloudComputing ID:=云视通 ID: #else CloudSEE ID:=云视通 ID: #endif Status:=云视通状态: Online=在线 Offline=不在线 Disconnect=断开 Please search SSID at first!=请先搜索无线SSID! ID or Passwd Cann't be empty!=用户名或密码不能为空! Connecting=正在连接 Connect Succeed=连接成功 Connect Failed=连接失败 Connect Timeout=连接超时 Disconnecting=正在断开 Disconnect Succeed=断开成功 Disconnect Fail=断开失败 Disconnect Timeout=操作超时 Searching WIFI SSID=搜索网络 Not found WIFI SSID!=没有搜索到网络! Passwd cann't be NULL!=密码不能为空! ID or password can not be emputy!=用户名和密码不能为空! Please refresh and select WIFI AP!=请选择要连接的无线网络! Restart to enable the changing, are you sure?=修改网络配置需要重启设备是否确认修改? Refresh=刷新 Ok=确定 Exit=退出 User No Permission=用户无权限! The Last byte of the IP Should not be 255=IP地址第4字节不能为255 ;云台管理 IPCam Setting=摄像机设置 Iris=光圈 Focus=变焦 Zoom=变倍 Assist=辅助 Speed=速度 Preset=预置点 Patrol=巡航 Path & Watch=轨迹与守望 Scan=扫描 Name=名称 Add=添加 Delete=删除 Call=调用 Preset(%d)=预置点(%d) The Speep is 1~255=速度在1~255之间 Notice:This is beyond the Total!=提示:超出预置点总数! Error:This Presetting Location Number has been used!=错误:预置点重复,请换用其它预置点 Stay Time=停留时间 Start=启动 Stop=停止 Record Path=轨迹录制 Record=录制 Finish=完成 Watch=守望 Wait Time=等待时间 Left Limit=左边界 Right Limit=右边界 Start Scan=开始扫描 Stop Scan=结束扫描 Various Scan=花样扫描 NULL=NULL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值