国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity 上傳文件到阿里云 對象存儲OSS服務(wù)器

這篇具有很好參考價(jià)值的文章主要介紹了Unity 上傳文件到阿里云 對象存儲OSS服務(wù)器。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

首先登錄阿里云 免費(fèi)試用–對象存儲OSS --點(diǎn)擊立即試用,可以有三個(gè)月的免費(fèi)試用
Unity 上傳文件到阿里云 對象存儲OSS服務(wù)器,Unity小問題,unity,阿里云,服務(wù)器
創(chuàng)建Buket
Unity 上傳文件到阿里云 對象存儲OSS服務(wù)器,Unity小問題,unity,阿里云,服務(wù)器
Unity 上傳文件到阿里云 對象存儲OSS服務(wù)器,Unity小問題,unity,阿里云,服務(wù)器
新建AccessKey ,新建完成后,會有一個(gè)CSV文件,下載下來,里面有Key ,代碼中需要用到
Unity 上傳文件到阿里云 對象存儲OSS服務(wù)器,Unity小問題,unity,阿里云,服務(wù)器
下載SDK
Unity 上傳文件到阿里云 對象存儲OSS服務(wù)器,Unity小問題,unity,阿里云,服務(wù)器
雙擊打開 sln文件,使用VS打開,右鍵項(xiàng)目–屬性,修改程序集名字,然后點(diǎn)擊生成–生成解決方案,這時(shí) sdk/bin 里面就會有 Aliyun.OSS.dll了 然后把這個(gè)dll拖入到Unity 工程里即可(任意位置都可以),
Unity 上傳文件到阿里云 對象存儲OSS服務(wù)器,Unity小問題,unity,阿里云,服務(wù)器
Unity 上傳文件到阿里云 對象存儲OSS服務(wù)器,Unity小問題,unity,阿里云,服務(wù)器
Unity 上傳文件到阿里云 對象存儲OSS服務(wù)器,Unity小問題,unity,阿里云,服務(wù)器

剩下的就寫代碼了

using Aliyun.OSS;
using Aliyun.OSS.Common;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using UnityEngine;
using UnityEngine.UI;
 
public class AliyunOSSWithProcess : MonoBehaviour
{
    // UI 的相關(guān)組件變量

    public Image processImage;
 
    // Oss對象,文件路徑,文件名變量
    private OssClient ossClient;
    string filePath;
    string fileName;
 
    // 進(jìn)度的回調(diào)函數(shù),以及線程,進(jìn)度變量
    Action<float> PutProcessCallback;
    Thread putLocalThread;
    float putProcess = 0;
 
    // Start is called before the first frame update
    void Start()
    {
        // new OssClient 對象
        ossClient = new OssClient(Config.EndPoint, Config.AccessKeyId, Config.AccessKeySecret);

         string path = Application.streamingAssetsPath + "/Test.txt";

        // 多線程進(jìn)度上傳函數(shù)
        PutObjectWithProcessByThread((process) =>
        {
            Debug.Log("上傳進(jìn)度為:" + process);
        },
        path,
        Path.GetFileName(path.Trim()));
    }

    // Update is called once per frame
    void Update()
    {
        // 因?yàn)?UI 只能在主線程中,所以在 Update 中監(jiān)控進(jìn)度給 UI
        if (PutProcessCallback != null) {
            processImage.fillAmount = putProcess;
            if (putProcess >= 1) {
                PutProcessCallback = null;
                putProcess = 0;
            }
        }
 
    }
 
 
    /// <summary>
    /// 子線程上傳文件,避免卡頓
    /// </summary>
    /// <param name="action"></param>
    /// <param name="filePath"></param>
    /// <param name="fileName"></param>
    public void PutObjectWithProcessByThread(Action<float> action, string filePath, string fileName)
    {
        PutProcessCallback = action;
        this.fileName = fileName;
        this.filePath = filePath;
        putLocalThread = new Thread(PutObjectWithProcess);
        putLocalThread.Start();
    }
 
    /// <summary>
    /// 獲取上傳進(jìn)度
    /// </summary>
    void PutObjectWithProcess()
    {
        try
        {
            using (var fs = File.Open(filePath, FileMode.Open))
            {
                PutObjectRequest putObjectRequest = new PutObjectRequest(Config.Bucket, fileName, fs);
                putObjectRequest.StreamTransferProgress += PutStreamProcess;
 
                ossClient.PutObject(putObjectRequest);
                Debug.Log("帶有進(jìn)度本地文件上傳成功");
            }
        }
        catch (OssException e)
        {
            Debug.Log("帶有進(jìn)度本地文件數(shù)據(jù)上傳錯誤:" + e);
        }
        catch (Exception e)
        {
            Debug.Log("帶有進(jìn)度本地文件數(shù)據(jù)上傳錯誤:" + e);
        }
        finally
        {
            // 終止進(jìn)程
            putLocalThread.Abort();
        }
 
    }
 
    /// <summary>
    /// 文件上傳流事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="args"></param>
    void PutStreamProcess(object sender, StreamTransferProgressArgs args)
    {
        putProcess = (args.TransferredBytes * 100 / args.TotalBytes) / 100.0f;
        PutProcessCallback.Invoke(putProcess);
    }
}
 
public class Config
{
    public const string AccessKeyId = "在上面提到的CSV文件里"; 
    public const string AccessKeySecret = "在上面提到的CSV文件里";
    public const string EndPoint = "oss-cn-beijing.aliyuncs.com";
    public const string Bucket = "testbuglog";
 
}

Unity 上傳文件到阿里云 對象存儲OSS服務(wù)器,Unity小問題,unity,阿里云,服務(wù)器
然后腳本掛到場景里,創(chuàng)建一個(gè)Image, 文件路徑已經(jīng)要帶后綴名,然后運(yùn)行就可以了,
Unity 上傳文件到阿里云 對象存儲OSS服務(wù)器,Unity小問題,unity,阿里云,服務(wù)器

借鑒文章文章來源地址http://www.zghlxwxcb.cn/news/detail-649893.html

到了這里,關(guān)于Unity 上傳文件到阿里云 對象存儲OSS服務(wù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包