赞
踩
今天研究了下在 unity 下做的 oss 上传,感觉应该分享下。
下面是官网的链接文档
https://help.aliyun.com/document_detail/91093.html?spm=a2c4g.11186623.6.908.1c712fc0rB0SQB
官网给的例子
using Aliyun.OSS; var endpoint = "<yourEndpoint>"; var accessKeyId = "<yourAccessKeyId>"; var accessKeySecret = "<yourAccessKeySecret>"; var bucketName = "<yourBucketName>"; var objectName = "<yourObjectName>"; var localFilename = "<yourLocalFilename>"; // 创建OssClient实例。 var client = new OssClient(endpoint, accessKeyId, accessKeySecret); try { // 上传文件。 client.PutObject(bucketName, objectName, localFilename); Console.WriteLine("Put object succeeded"); } catch (Exception ex) { Console.WriteLine("Put object failed, {0}", ex.Message); }
<yourAccessKeyId>
、<yourAccessKeySecret>
,<yourLocalFilename>
这三个参数相对简单些,分别是你的 Oss 帐号的 Id、secret、本地文件的路径。
而对于 <yourEndpoint>
、<yourBucketName>
,<yourObjectName>
却不知所云,他们到底是个什么,其实在 oss 里这个都有。打开你的 oss 后台管理。
其中 1 代表 <yourBucketName>
。2代表<yourEndpoint>
,但是前面要加上 http://
或者 https://
。
<yourObjectName>
就是你的最终文件的路径, 例如:modal/oxs/aaa.unity3d
下面是我做了 AssetsBundle后,自动上传ab包的功能。
附上写好的Oss单例代码:
using System; using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; using Aliyun.OSS; using UnityEditor; public class AliyunOss{ // 创建OssClient实例。 OssClient client; string endpoint = "https://oss-cn-beijing.aliyuncs.com"; string accessKeyId = ""; string accessKeySecret = ""; string bucketName = "abcdef"; string objectName = "modal"; string localFilename = "Assets/StreamingAssets"; string outPath = "Assets/StreamingAssets"; //Application.temporaryCachePath #region 单例 private static AliyunOss mSelf = null; public static AliyunOss Instance { get { if (mSelf == null) { mSelf = new AliyunOss(); } return mSelf; } } AliyunOss() { client = new OssClient(endpoint, accessKeyId, accessKeySecret); } #endregion public void OssAb(string path,string name) { try { // 上传文件。 Debug.Log(path+"-----------"+objectName+path+"/"+name); client.PutObject(bucketName, objectName+path+"/"+name, localFilename+path+"/"+name); Debug.Log("Oss succeeded"); } catch (Exception e) { Console.WriteLine(e); throw; } } }
其中关键语句client.PutObject(bucketName, objectName+path+"/"+name, localFilename+path+"/"+name);
为上传文件,被调用后是这样的:
client.PutObject("abcdef","modal/oxs/aaa.unity3d","Assets/StreamingAssets/oxs/aaa.unity3d");
这样是不是就理解了,如果给你解答疑惑,不要忘记点赞哦。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。