<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Amazon S3 概念及如何集成到 .net 8 C#

      Amazon S3(Simple Storage Service)是一個高度可擴展、數據可用性高安全性強的對象存儲服務

      Amazon S3 使用對象存儲架構,數據以對象的形式存儲在桶(buckets)中,每個對象都有一個唯一的鍵(key)。

       

      本文主要分為兩個部分:

      1、Amazon S3 相關概念

      2、.net 集成的代碼

      * 閱讀提示 :鼠標懸停在 章節標題 上可見 文章目錄



       

      1、概念

      bucket

      bucket 是存儲 object 的容器,可以按照業務劃分出一個 bucket,一個 bucket 中存儲多個 object,每個 object 都有自己的唯一標識 key。

       

      bucket 類型

      bucket 主要有 3 種類型,分別是 General purpose bucket,Direcotry bucket,Table bucket。

      • General purpose bucket

      創建 bucket 時的默認類型,它也是 S3 中最主要使用的類型

      • Directory bucket

      這種類型的 bucket 的 location type 限制使用 Availability Zone 或者 Local Zone

      為了低延遲,可以指定你的 Amazon EC2、Amazon EKS 或者 Amazon ECS 計算實例位于同一位置 AWS 區域和可用區。

      • Table bucket

      提供一種便于大數據分析的表格式的存儲方式。

      支持 Apache Iceberg 格式,查詢速度高于普通 S3 bucket。

      無縫集成:可以和 AWS 的分析服務(像 Amazon Athena, Amazon Redshift, AWS Glue Data Catalog)以及開源查詢引擎(如 Apache Spark)無縫集成

      更多:

      [1] Tabular Data Storage At Scale - Amazon S3 Tables - AWS

      [2] Table buckets - Amazon Simple Storage Service

       

       

      bucket 屬性

      下表將列出一些在配置 bucket 時需要關注的、比較常用的 bucket 屬性

      region 這個 bucket 所屬物理位置,和 AWS 賬號的 region 是一致的
      name  
      access 讀寫權限相關
      versioning 在 bucket 中允許存儲一個 object 有不同的版本
      tag 可選項,加一些標簽來區分其他的 bucket
      default encryption 對于存儲的 object 是否加密,可以不啟用;啟用需要選擇加密方式
      object lock 當寫入該 object 的時候是否鎖定該 object
      lifecycle 生命周期管理,一個 object 被上傳到 ticket 之后多少時間要觸發什么動作,或者多久該 object 被清除掉等等配置
      .. ..

       

      生命周期管理的一個示例:

      此處配置當一個 object 被 upload 到 bucket 后,一天之后該數據過期,但過期并不做任何處理,即并不會被刪除

       

      object

      當進入一個指定的 bucket 后,會看到它的 object 列表

       

      每一個 object 都有一個自己的 key,這是檢索、找回這個 object 唯一方式

      • object 可以是一個文件
      • object 支持類似于文件夾似的對象管理方式,通過對 key 的命名方式來實現

      例如

      object

      key

      object 1

      folder1/key1

      object 2

      folder1/key2

      object 3

      folder1/key3

      這里實際上有 3 個object,但是在 Amazon S3 中查找這 3 個文件的時候,它會以文件目錄的方式顯示。

      使其看起來像是一個文件夾類型的 object,但這只是 S3 網頁上的呈現方式,是一種做好分類以便于查閱的前端手段。

       

       

      • S3 是分布式存儲

      為了數據高可用性,S3 會多處備份,所以有些 object key 看似邏輯相似,但物理存儲位置都是不同的。

       

       

       

      安全性保證

      • 支持數據加密

       

      • 權限管理

       

      • bucket policy 訪問策略

      這里是 json 的格式配置哪個AWS用戶可以訪問該 S3 的哪個 bucket 資源,可以允許什么操作

       

       

       

      監控與指標 Metric

      • 常規監控指標:bucket 大小,object 數量

       

      • 與 AWS cloud watch 集成

       

       

       

       

      2、與 .net 8 api 項目集成

      1、配置 AWS 憑證

      確保本地機器 AWS 憑證已配置好,通常,憑證文件位于 ~/.aws/credentials。

       

      2、包依賴

      dotnet add package AWSSDK.S3

       

      在你的 .NET 項目中,創建一個 Amazon S3 客戶端實例:

      using Amazon.S3;
      using Amazon.S3.Model;
      
      var s3Client = new AmazonS3Client();
      // new AmazonS3Client(config.AccessKey, config.SecretKey, RegionEndpoint.GetBySystemName(config.Region));

       

      下列實例代碼使用的是 3.7.9.56 版本 SDK

      <PackageReference Include="AWSSDK.S3" Version="3.7.9.56" />

       

      3、實現基本操作

      你可以實現基本的 S3 操作,如創建 bucket、上傳文件、下載文件等。

      • 創建 bucket
      var putBucketRequest = new PutBucketRequest
      {
          BucketName = "your-bucket-name",
          UseClientRegion = true
      };
      
      var putBucketResponse = await s3Client.PutBucketAsync(putBucketRequest);

       

      • 上傳文件
      var putObjectRequest = new PutObjectRequest
      {
          BucketName = "your-bucket-name",
          Key = "your-file-key",
          FilePath = "path/to/your/file"
      };
      
      var putObjectResponse = await s3Client.PutObjectAsync(putObjectRequest);

       

      • 下載文件
      var getObjectRequest = new GetObjectRequest
      {
          BucketName = "your-bucket-name",
          Key = "your-file-key"
      };
      
      using (var getObjectResponse = await s3Client.GetObjectAsync(getObjectRequest))
      using (var responseStream = getObjectResponse.ResponseStream)
      using (var fileStream = File.Create("path/to/save/file"))
      {
          await responseStream.CopyToAsync(fileStream);
      }

       

       

      4、處理錯誤和異常

      確保在代碼中處理可能出現的錯誤和異常,例如網絡問題或權限問題。

       

      posted @ 2024-12-11 16:14  Carcar019  閱讀(351)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 天堂va欧美ⅴa亚洲va在线| 男人j进入女人j内部免费网站| 久久成人影院精品777| 亚洲国产一区二区三区最新| 亚洲人成网站在小说| 国产小视频一区二区三区| 潮州市| 亚洲人成人日韩中文字幕| 久久精品视频一二三四区| 国产欧美另类精品久久久| 18禁无遮挡啪啪无码网站破解版| 91孕妇精品一区二区三区| 人人爽人人模人人人爽人人爱| 中文乱码人妻系列一区二区| 久久精品人人看人人爽| 深夜在线观看免费av| 亚洲人成伊人成综合网小说| 一区二区三区日本久久九| 免费VA国产高清大片在线| 红桃视频成人传媒| 日韩一区二区三区无码a片| 亚洲成人资源在线观看| 亚洲精品乱码久久久久红杏| 国产成人片无码视频| 久久精品道一区二区三区| 在线看av一区二区三区| 日本亚洲色大成网站www久久| 中文激情一区二区三区四区| 亚洲精品欧美综合二区| 久久精产国品一二三产品| 日本不卡码一区二区三区| 亚洲一区精品伊人久久| 精品久久久久无码| 日韩福利片午夜免费观着| 日本熟妇色xxxxx日本免费看 | 成人午夜视频在线| 蜜臀一区二区三区精品免费| 久久成人国产精品免费软件| 国产95在线 | 欧美| 成人国产一区二区三区精品| 亚洲 制服 丝袜 无码|