.NET Core AWS S3云存储
【導讀】最近有需要用到AWS S3云存儲上傳附件,這里對利用.NET或.NET Core在調用SDK APi需要注意的一點小問題做個記錄,或許能對后續有用到的童鞋提供一點幫助
Amazon Simple Storage Service (Amazon S3) 是一種對象存儲服務,提供行業領先的可擴展性、數據可用性、安全性和性能。
這意味著各種規模和行業的客戶都可以使用 S3 來存儲并保護各種用例(如數據湖、網站、移動應用程序、備份和還原、存檔、企業應用程序、IoT 設備和大數據分析)的數據,容量不限。Amazon S3 提供了易于使用的管理功能,因此您可以組織數據并配置精細調整過的使用權限控制,從而滿足特定的業務、組織和合規性要求。Amazon S3 可達到 99.999999999%(11 個 9)的持久性,并為全球各地的公司存儲數百萬個應用程序的數據。
AWS S3云存儲
官方已提供針對.NET/.NET Core針對S3的APi
https://docs.aws.amazon.com/sdkfornet/v3/apidocs/
以及SDK demo
https://github.com/awslabs/aws-sdk-net-samples
首先我們下載針對.NET Core的SDK包(AWSSDK.Core)以及通過S3存儲對象包(AWSSDK.S3),如下圖所示
接下來我們再利用官方所給SDK Demo,如下:
因為上述構造S3客戶端直接使用地區,所以此時并不能直接復制拿來使用,AWS S3上傳附件要提供上傳憑證和配置
一般情況下我們都是利用如下構造
因憑證就是AK/SK,我們也可直接提供AK、SK,如下構造,一切根據實際業務對接情況而具體分析
public?AmazonS3Client(string?awsAccessKeyId,?string?awsSecretAccessKey,?AmazonS3Config?clientConfig);通過官網介紹,憑證可以通過配置文件、環境變量等等共享,這一塊并不是重點,未細看,請忽略,我直接將其存放到配置文件中。最終構造AWSS3Client,如下代碼:
//提供awsAccessKeyId和awsSecretAccessKey構造憑證 var?credentials?=?new?BasicAWSCredentials(awsAccessKeyId,?awsSecretAccessKey);//提供awsEndPoint(域名)進行訪問配置 var?clientConfig?=?new?AmazonS3Config {ServiceURL?=?awsEndPoint };var?amazonS3Client?=?new?AmazonS3Client(credentials,?clientConfig);AWS提供了常用的ReginEndPoint,但若對接方提供了自定義Region,則需通過如下配置獲取RegionEndPoint,參數地區awsRegion比如為cn.south.shenzhen
此時再運行將會拋出如下異常:
針對上述訪問配置,繼續配置ForcePathStyle為true,說明請求都將采用路徑風格地址,根據猜測因為我們使用指定域名(ServiceURL)來發送請求,所以必須要指定此屬性。
var?clientConfig?=?new?AmazonS3Config {RegionEndpoint?=?RegionEndpoint.GetBySystemName(awsRegion),ServiceURL?=?awsEndPoint,ForcePathStyle?=?true };??????.NET Core使用AWS S3云存儲 ,無非就是APi調用俠,沒啥技術含量,只不過需要稍稍需注意以上兩個小問題就好,繼而則可對桶、對象進行相關業務邏輯操作
總結
以上是生活随笔為你收集整理的.NET Core AWS S3云存储的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 代码质量在「内卷时代」的重要性
- 下一篇: 如何解决在ASP.NET Core中找不
