Unity结合阿里云服务器-实现字符串上传和本地文件上传


这个给大家带来的是Unity与阿里云服务器数据的上传和下载,如有不正之处,还望指出!

1.导入Ailiyun.dll的SDK(阿里云官网的开发者指南)

2.引入相应的命名空间

3.上传字符串到云服务器

A:在阿里云服务器的对象存储OSS,新建Bucket,这个Bucket就可以做为上传文件的存储空间

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using Aliyun.OSS;

using Aliyun.OSS.Common;

using System.Text;

using System.IO;

public class PutObejct : MonoBehaviour {

private OssClient clinet;

public static PutObejct Instance;

void Awake () 

{

Instance = this;

clinet = new OssClient(Config.EndPoint,Config.AccessKeyid,Config.AccessKeySecret);

}

B:新建一个Config的脚本

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class Config  {

    public const string AccessKeyid = "LTAI5IcR2fyUo734";

    public const string AccessKeySecret = "k3lPVxasn5cBzWRLY6PGL4Amzf0m01";

    public const string EndPoint = "oss-cn-shenzhen.aliyuncs.com";

    public const string Bucket = "zzrto";

  }

D:实现字符串上传

//字符串上传

public void PutObjWithStr(string fileName, string text)

{

        try

        {

            byte[] b = Encoding.UTF8.GetBytes(text);

            using (Stream stream = new MemoryStream(b))

            {

                clinet.PutObject(Config.Bucket, fileName, stream);

                Debug.Log("字符串上传成功" + text);

            }

 }

 catch (OssException e)

{

            Debug.Log("字符串上传错误:" + e);

        }

        catch (System.Exception e)

        {

            Debug.Log("字符串上传错误:" + e);

        }

}

E:实现文件上传(txt,zip各种格式都可以)

public void PutObjFormLocal(string localPath,string fileName)

{

        try

        {

            clinet.PutObject(Config.Bucket, fileName, localPath);

            Debug.Log("本地上传成功" + localPath);

        }

        catch(OssException e)

        {

            Debug.Log("本地上传:" + e.Message);

        }

        catch (System.Exception e)

       {

            Debug.Log("本地上传:" + e.Message);

        }

}

F:将FutObject设置为单例模式,创建一个新的Test脚本,当按下A键上传文件

//本地字符串上传测试

void Update ()

 {

   if(Input.GetKeyDown(KeyCode.Space))

    {

            //字符串上传测试

            //  PutObejct.Instance.PutObjWithStr("Text.txt", "EveryOne,My Name is Zzr");

            //本地字符串上传测试

            PutObejct.Instance.PutObjFormLocal(@"C:\Users\Administrator\Desktop\新建文本文档.txt", "zzr.txt");

          //模型上传

          PutObejct.Instance.PutObjFormLocal(@"E:\Unity3D游戏案例\SIKI学院案例\中级案例\AliyunOSS\Assets\AssetBundles\Capsule\capsule.zzr", "capsule.zzr");

          PutObejct.Instance.PutObjFormLocal(@"E:\Unity3D游戏案例\SIKI学院案例\中级案例\AliyunOSS\Assets\AssetBundles\Cube\cube.zzr", "cube.zzr");

            PutObejct.Instance.PutObjFormLocal(@"E:\Unity3D游戏案例\SIKI学院案例\中级案例\AliyunOSS\Assets\AssetBundles\Cylinder\cylinder.zzr", "cylinder.zzr");

      }

   }

}

本地文件上传时,需要传递的参数是文件的路径,文件可以自己创建,路径的前面要加转义符@,第二个参数是xxx.txt类型的字符串,可以随意定义

注:字符串上传失败要将Build Setting里面的Player setting的.Net版本改为4.6

模型上传:需要填打包后模型所在的路径

以上就是unity结合阿里云字符串数据上传和本地文件上传的代码,接下来我会发布如果通过网络加载模型!

你可能感兴趣的:(Unity结合阿里云服务器-实现字符串上传和本地文件上传)