Unity上传文件到阿里云OSS

最近做项目,需要把拍的的照片上传服务器,并生成下载链接的二维码,以供扫码下载。第一次接触服务器,很头疼,不过最终还是搞出来啦~很开心,所以在这里记录一下,那些曾经踩过的坑。

1、首先要感谢在这个过程中给予帮助的各位小伙伴儿们,尤其是建建,siki学院的老师,以及志远大佬等人。

2、要上传到阿里云,第一步当然是进入到阿里云的官网,找到存储服务的对象存储OSS

这个时候就要开始交钱啦。买个套餐,4.98,再冲个10块钱,十几块钱就搞定了。

3、交完钱后进入OSS管理控制台,这里就是你存储你文件的地方。新建存储桶,设置可以参考下图:

这个时候服务器端就完成了,记下你的存储桶地址,后边上传文件会用到这个地址,因为你要上传到这个桶里。地址名格式为
https://Bucket名字..oss-cn-beijing.aliyuncs.com,

下边就该准备写代码了。

4、首先要下载sdk,阿里云没有专门用于unity的sdk,这里我们需要用.net的sdk,在这里下载

5、下载完成后,找到文件夹中的Aliyun.OSS.dll这个文件,将它导入Unity项目中,这个操作有个坑,让我在里边折腾了一两天的那种,文末会讲到。到这里,我们的一切准备工作就完成了。

6、开始写代码。首先是上传文件的方法:

7、调用这个方法,上传文件:

8、运行代码,上传成功,这个时候就可以在阿里云存储桶看到你上传的文件了:

9:、或许你有可能会遇到上传文件失败的问题,这就有可能你掉进了和我一样的坑里面。直接将阿里云官方文档上的Aliyun.OSS.dll导进Unity工程中,要想上传成功,需要有一个前提,就是你的.net库版本应该是4.x,我的是4.6,一开始总是上传失败,后来在siki学院老师Carson的视频里边找到的解决方法。如果你的.net库版本是4.x,上传应该是不会存在问题的。

遇到的一个bug:

OssException: The specified bucket is not valid.

解决方法:Endpoint中不要带Bucket的名称

 

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
要在Unity中使用Aliyun OSS服务器上的视频,你需要先在Unity中安装Aliyun OSS SDK。然后,你需要编写代码来连接到OSS服务器,并下载视频文件。以下是几个简单的步骤: 1. 在Unity中导入OSS SDK。可以从OSS的官方网站https://www.alibabacloud.com/help/zh/doc-detail/32068.htm中下载。 2. 在代码中定义Aliyun OSS的Access Key和Secret Key,以及Bucket名称和Object Key。这些信息可以在OSS的控制台中找到。 3. 使用OSS SDK提供的方法连接到OSS服务器,并下载视频文件。可以使用以下代码: ```csharp using Aliyun.OSS; using UnityEngine; using System.IO; public class DownloadVideo : MonoBehaviour { private OssClient client; void Start() { string accessKeyId = "your-access-key-id"; string accessKeySecret = "your-access-key-secret"; string endpoint = "your-endpoint"; string bucketName = "your-bucket-name"; string objectKey = "your-object-key"; var credentials = new DefaultCredentials(accessKeyId, accessKeySecret); client = new OssClient(endpoint, credentials); var request = new GetObjectRequest(bucketName, objectKey); var result = client.GetObject(request); using (var stream = result.Content) { byte[] buffer = new byte[stream.Length]; stream.Read(buffer, 0, buffer.Length); string path = Application.persistentDataPath + "/video.mp4"; File.WriteAllBytes(path, buffer); } } } ``` 以上代码下载视频文件,并将其保存到应用程序的持久数据路径中。 4. 在Unity中使用VideoPlayer组件播放已下载的视频文件。可以使用以下代码: ```csharp using UnityEngine; using UnityEngine.Video; public class PlayVideo : MonoBehaviour { public string videoPath = ""; void Start() { var videoPlayer = GetComponent<VideoPlayer>(); videoPlayer.url = videoPath; videoPlayer.Play(); } } ``` 以上代码将视频文件的路径设置为VideoPlayer组件的url属性,并开始播放视频。 请注意,以上代码只是一个简单的示例,你需要根据自己的需求进行修改。例如,你可能需要添加错误处理、进度更新等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值