自学内容网 自学内容网

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;

原文地址:https://blog.csdn.net/weixin_42738354/article/details/135414569

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!