阿里雲OSS存儲開發(一)


Step 1. 初始化一個OSSClient

OSSClient是與OSS服務交互的客戶端,SDK的OSS操作都是通過OSSClient完成的。

下面代碼新建了一個OSSClient:

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);

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

在上面代碼中,變量 accessKeyIdaccessKeySecret 是由系統分配給用戶的,稱為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管理控制台創建。

 

Step 3. 上傳Object

Object是OSS中最基本的數據單元,你可以把它簡單地理解為文件,用下面代碼可以實現一個Object的上傳:

        /// <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

        /// <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();
        }

 

最終文件怎么訪問呢?你猜(上阿里雲的管理控制台看看你就知道了)...

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM