阿里雲OSS存儲開發

Step 1. 初始化一個OSSClient
        OSSClient是與OSS服務交互的客戶端,SDK的OSS操做都是經過OSSClient完成的。

        下面代碼新建了一個OSSClient:      html

using Aliyun.OpenServices.OpenStorageService;
        using System;
        using System.Collections.Generic;
        using System.Linq;
        using System.Text;
        using System.Threading.Tasks;

        namespace AliyunTest
        {
            class Program
            {
                static readonly string accessKeyId = "AccessKeyId";
                static readonly string accessKeySecret = "AccessKeySecret";
                //關於這個endPoint,能夠參考:http://bbs.aliyun.com/read/149100.html?spm=5176.7189909.0.0.YiwiFw
                static readonly string endPoint = "http://oss-cn-beijing.aliyuncs.com";

                static void Main(string[] args)
                {
                    //初始化 OSSClient
                    OssClient ossClient = new OssClient(endPoint, accessKeyId, accessKeySecret);

                    //使用代碼...
                }
            }
        }

        在上面代碼中,變量 accessKeyId 與 accessKeySecret 是由系統分配給用戶的,稱爲ID對,用於標識用戶,爲訪問OSS作簽名驗證。       

Step 2. 新建Bucket
        Bucket是OSS上的命名空間,至關於數據的容器,能夠存儲若干數據實體(Object)。

        你能夠按照下面的代碼新建一個Bucket:              阿里雲

/// <summary>
                /// 新建存儲對象容器Bucket
                /// </summary>
                /// <param name="bucketName">容器名稱</param>
                void CreateBucket(string bucketName)
                {
                    //初始化 OSSClient
                    OssClient ossClient = new OssClient(endPoint, accessKeyId, accessKeySecret);

                    // 新建一個Bucket
                    var bucket = ossClient.CreateBucket(bucketName);

                    Console.WriteLine(bucket.CreationDate);
                }

        因爲Bucket的名字是全局惟一的,因此儘可能保證你的 bucketName 不與別人重複。

        其實也能夠在阿里雲的OSS管理控制檯建立。spa


Step 3. 上傳Object
        Object是OSS中最基本的數據單元,你能夠把它簡單地理解爲文件,用下面代碼能夠實現一個Object的上傳:
              code

 /// <summary>
                /// 進行對象存儲
                /// </summary>
                /// <param name="bucketName">bucket名稱</param>
                void PutObject(string bucketName)
                {
                    //初始化 OSSClient
                    OssClient ossClient = new OssClient(endPoint, accessKeyId, accessKeySecret);

                    //定義文件流
                    var objStream = new System.IO.FileStream("D:\\example\\test.jpg", System.IO.FileMode.OpenOrCreate);
                    //定義 object 描述
                    var objMetadata = new ObjectMetadata();
                    var objKey = "test.jpg";

                    //執行 put 請求,而且返回對象的MD5摘要。
                    var putResult = ossClient.PutObject(bucketName, objKey, objStream, objMetadata);

                    Console.WriteLine(putResult.ETag);
                }

        Object經過InputStream的形式上傳到OSS中。在上面的例子裏咱們能夠看出,每上傳一個Object,都須要指定和Object關 聯的ObjectMetadata。ObjectMetaData是用戶對該object的描述,由一系列name-value對組成;其中 ContentLength是必須設置的,以便SDK能夠正確識別上傳Object的大小。

        Put Object請求處理成功後,OSS會將收到文件的MD5值放在返回結果的ETag中。用戶能夠根據ETag檢驗上傳的文件與本地的是否一致。

Step 4. 獲取指定Objec              htm

/// <summary>
                /// 獲取一個存儲對象
                /// </summary>
                /// <param name="bucketName">bucket名稱</param>
                /// <param name="objKey">對象標識名稱</param>
                void GetObject(string bucketName, string objKey)
                {
                    //初始化 OSSClient
                    OssClient ossClient = new OssClient(endPoint, accessKeyId, accessKeySecret);

                    //獲取對象
                    var obj = ossClient.GetObject(bucketName, objKey);
                    //獲取Object的輸入流
                    var objStream = obj.Content;

                    //怎麼處理數據流,您看着辦吧。
                    //...

                    //最後關閉數據流。
                    objStream.Close();
                }
相關文章
相關標籤/搜索