阿里雲團隊努力不懈,力求將最新的技術內容更快地以您最熟悉的語言呈現。本文由簡體中文內容自動轉碼而成,過程無人工干預。阿里雲不保證此自動轉碼的準確性、完整性及時效性。因轉碼造成的任何內容錯誤及因此可能帶來的損失,阿里雲概不負責,敬請見諒。本文内容請以簡體中文版本為準。
全部產品
Search
文件中心

快速入門

更新時間: Oct 19, 2018

請確認您已經熟悉OSS的基本概念,如儲存空間(Bucket)、檔案/對象(Object)、訪問網域名稱(Endpoint)、存取金鑰(AccessKey,包括AccessKeyId和AccessKeySecret)等。

本節您將看到如何快速使用OSS .NET SDK完成常見操作,如建立儲存空間、上傳檔案、下載檔案等。

初始化OssClient

下面代碼用於建立一個OssClient:

  1. using Aliyun.OSS;
  2. /// <summary>
  3. /// 由使用者指定的OSS訪問地址、阿里雲頒發的AccessKeyId/AccessKeySecret構造一個新的OssClient執行個體。
  4. /// </summary>
  5. /// <param name="endpoint">OSS的訪問地址。</param>
  6. /// <param name="accessKeyId">OSS的訪問ID。</param>
  7. /// <param name="accessKeySecret">OSS的存取金鑰。</param>
  8. public void CreateClient(string endpoint, string accessKeyId, string accessKeySecret)
  9. {
  10. var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
  11. }

關於OssClient的詳細介紹,請參見 初始化

新建儲存空間

儲存空間是OSS全域命名空間,相當於資料的容器,可以儲存若干檔案。

以下代碼用於新建一個儲存空間:

  1. using Aliyun.OSS;
  2. /// <summary>
  3. /// 在OSS中建立一個新的儲存空間。
  4. /// </summary>
  5. /// <param name="bucketName">要建立的儲存空間的名稱</param>
  6. public void CreateBucket(string bucketName)
  7. {
  8. var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
  9. try
  10. {
  11. var bucket = client.CreateBucket(bucketName);
  12. Console.WriteLine("Create bucket succeeded.");
  13. Console.WriteLine("Name:{0}", bucket.Name);
  14. }
  15. catch (Exception ex)
  16. {
  17. Console.WriteLine("Create bucket failed, {0}", ex.Message);
  18. }
  19. }

關於儲存空間的命名規範,請參見管理Bucket中的命名規範。

上傳檔案

檔案是OSS中最基本的資料單元。

以下代碼用於上傳檔案:

  1. using Aliyun.OSS;
  2. /// <summary>
  3. /// 上傳指定的檔案到指定的OSS的儲存空間
  4. /// </summary>
  5. /// <param name="bucketName">指定的儲存空間名稱</param>
  6. /// <param name="key">檔案的在OSS上保存的名稱</param>
  7. /// <param name="fileToUpload">指定上傳檔案的本地路徑</param>
  8. public void PutObject(string bucketName, string key, string fileToUpload)
  9. {
  10. var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
  11. try
  12. {
  13. var result = client.PutObject(bucketName, key, fileToUpload);
  14. Console.WriteLine("Put object succeeded");
  15. Console.WriteLine("ETag:{0}", result.ETag);
  16. }
  17. catch (Exception ex)
  18. {
  19. Console.WriteLine("Put object failed, {0}", ex.Message);
  20. }
  21. }

上傳檔案詳情,請參見上傳檔案

列舉檔案

當您完成一系列上傳後,可能需要查看某個儲存空間中有哪些檔案。

以下代碼用於列舉檔案:

  1. using Aliyun.OSS;
  2. /// <summary>
  3. /// 列出指定儲存空間的檔案清單
  4. /// </summary>
  5. /// <param name="bucketName">儲存空間的名稱</param>
  6. public void ListObjects(string bucketName)
  7. {
  8. var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
  9. try
  10. {
  11. var listObjectsRequest = new ListObjectsRequest(bucketName);
  12. var result = client.ListObjects(listObjectsRequest);
  13. Console.WriteLine("List object succeeded");
  14. foreach (var summary in result.ObjectSummaries)
  15. {
  16. Console.WriteLine(summary.Key);
  17. }
  18. }
  19. catch (Exception ex)
  20. {
  21. Console.WriteLine("List object failed, {0}", ex.Message);
  22. }
  23. }

獲取檔案

以下代碼用於對指定檔案內容的讀取:

  1. using Aliyun.OSS;
  2. var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
  3. /// <summary>
  4. /// 從指定的OSS儲存空間中獲取指定的檔案
  5. /// </summary>
  6. /// <param name="bucketName">要獲取的檔案所在的儲存空間名稱</param>
  7. /// <param name="key">要獲取的檔案在OSS上的名稱</param>
  8. /// <param name="fileToDownload">本機存放區下載檔案的目錄<param>
  9. public void GetObject(string bucketName, string key, string fileToDownload)
  10. {
  11. try
  12. {
  13. var obj = client.GetObject(bucketName, key);
  14. //將從OSS讀取到的檔案寫到本地
  15. using (var requestStream = obj.Content)
  16. {
  17. byte[] buf = new byte[1024];
  18. using (var fs = File.Open(fileToDownload, FileMode.OpenOrCreate))
  19. {
  20. var len = 0;
  21. while ((len = requestStream.Read(buf, 0, 1024)) != 0)
  22. {
  23. fs.Write(buf, 0, len);
  24. }
  25. }
  26. }
  27. }
  28. catch (Exception ex)
  29. {
  30. Console.WriteLine("Get object failed, {0}", ex.Message);
  31. }
  32. }

當調用OssClient的GetObject方法時,會返回一個OssObject對象,此對象包含了檔案的各種資訊。

通過調用OssObject的GetObjectContent方法,可以獲取返回的檔案輸入資料流,通過讀取此輸入資料流獲取此檔案的內容,在用完之後關閉這個流。

刪除檔案

以下代碼用於刪除指定檔案:

  1. using Aliyun.OSS;
  2. /// <summary>
  3. /// 刪除指定的檔案
  4. /// </summary>
  5. /// <param name="bucketName">檔案所在儲存空間的名稱</param>
  6. /// <param name="key">待刪除的檔案名稱</param>
  7. public void DeleteObject(string bucketName, string key)
  8. {
  9. var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
  10. try
  11. {
  12. client.DeleteObject(bucketName, key);
  13. Console.WriteLine("Delete object succeeded");
  14. }
  15. catch (Exception ex)
  16. {
  17. Console.WriteLine("Delete object failed, {0}", ex.Message);
  18. }
  19. }