- 此Unity SDK基于阿里云OSS C# SDK简单修改而来,changes看checkin历史记录。
- 只是简单测试了Editor和Android端的几个简单API,比如获取bucket信息,未全部测试Unity各平台及其它方法,请谨慎使用。
- 弄这个版本只是懒得在Unity里用REST API,这里只是简单解决了c# sdk在Unity上使用出现空指针的问题,期望阿里云OSS官方支持Unity平台。
- 有问题欢迎提issue,现在发现Unity版本还是有不少坑,遇到一些问题陆续在修复,没办法,一条道走到黑了。
- 如果要运行sample,需要将aliyun-oss-sdk-sample项目设为
启动项目
,并添加您自己的AccessKeyId,AccessKeySecret,bucket,key等后即可运行。 - 不要用BeginPutObject(string bucketName, string key, string fileToUpload, ...)这个接口,该接口内部由于异步处理会报stream already closed的错误,并且没有做异常处理,导致外部无限等待。Wrokaround是先自己读取stream,然后再用BeginPutObject(string bucketName, string key, Stream content,...)
- 发现IOS平台无法使用ListObjects和BeginListObjects,程序不会报错,但是取不到正确结果。解决办法是不使用dll,直接将工程目录下的整个sdk文件夹复制到Unity工程里。
- 其他问题请参考:http://www.shirlman.com/unity/20161222/510
- 此Unity SDK基于阿里云对象存储服务 API构建。
- 阿里云对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量,安全,低成本,高可靠的云存储服务。
- OSS适合存放任意文件类型,适合各种网站、开发企业及开发者使用。
- 使用此SDK,用户可以方便地在任何应用、任何时间、任何地点上传,下载和管理数据。
- 当前版本:2.4.0
- 5.4.0,5.5.2f1,5.6.1f,2017.1.0f3可用,其它版本未测试
- build工程,将..sdk\bin\Debug\Aliyun.OSS.dll引入Unity工程。
- 或者直接用build好的版本。
- 或者直接将sdk文件夹复制到Unity工程里(如果你遇到一些奇葩的问题,请使用该方法)。
OssClient client = new OssClient(endpoint, accessKeyId, accessKeySecret);
var buckets = client.ListBuckets();
foreach (var bucket in buckets)
{
Console.WriteLine(bucket.Name + ", " + bucket.Location + ", " + bucket.Owner);
}
OssClient client = new OssClient(endpoint, accessKeyId, accessKeySecret);
client.CreateBucket(bucketName);
OssClient client = new OssClient(endpoint, accessKeyId, accessKeySecret);
client.DeleteBucket(bucketName);
OssClient client = new OssClient(endpoint, accessKeyId, accessKeySecret);
client.PutObject(bucketName, key, filePathToUpload);
OssClient client = new OssClient(endpoint, accessKeyId, accessKeySecret);
var object = ossClient.GetObject(bucketName, key);
OssClient client = new OssClient(endpoint, accessKeyId, accessKeySecret);
var listResult = client.ListObjects(bucketName);
foreach (var summary in listResult.ObjectSummaries)
{
Console.WriteLine(summary.Key);
}
OssClient client = new OssClient(endpoint, accessKeyId, accessKeySecret);
client.DeleteObject(bucketName, key)
上面的例子中,如果没有抛出异常则说明执行成功,否则失败,更详细的例子可以在aliyun-oss-sample项目中查看并运行。