[心得] 使用C#從AWS S3上下載檔案

作者: KK2653 (賴打)   2016-06-06 22:33:58
各位好,在下由於工作的關係,小小研究了一下Amazon Web Service的S3
在研究的時候發現很多google到的資料或是官方API寫的都是英文
找很久才找到需要的東西,
(↑其實英文不夠好所以看得很吃力..(汗))
今天小小整理了一下分享給大家,
非圖文並茂版:http://kssiegeroad.blogspot.tw/2016/06/awscaws-s3.html
以下假設是已經申請好帳號並且已經在開發的階段喔!
雖然AWS官方本身就有提供.NET的套件可以直接在VS新增專案的時候套用,
但是我這邊需要用到的是另外放在Form裡面執行
所以一開始是用臨時性的認證方式去宣告+連接
//宣告IAM用戶臨時安全證書
SessionAWSCredentials sessionCredentials =
this.GetTemporaryCredentials(pAccessKey, pSecretKey);
//連接AmazonS3Client
AmazonS3Client s3Client =
   new AmazonS3Client(sessionCredentials, Amazon.RegionEndpoint.GetBySystemName(pRegionName));
連接成功後再來using AmazonS3Client
using(s3Client) {
//取得物件的request
GetObjectRequest request = new GetObjectRequest {
//BucketName
BucketName = pBucketName,
//放在S3上的資料夾+檔案名稱(包含附檔名ex.firstFolder/secondFolder/filename.txt)
Key = pKeyName
};
//取得物件的response
GetObjectResponse response1 = s3Client.GetObject(request);
//下載檔案到pDest <<絕對路徑
response1.WriteResponseStreamToFile(pDest);
}
在GetObjectRequest裡面放入參數 BucketName及在S3要下載檔案的路徑
再使用GetObjectResponse來接收
最後再使用WriteResponseStreamToFile下載下來
pDest:存在檔案的絕對路徑 ex.D:\Folder
這樣就下載下來囉!
作者: anumis (阿努米斯)   2016-06-07 00:03:00
給個讚
作者: DrumMania (Rock'n'Roll)   2016-06-07 08:47:00
推分享
作者: ocean0120 (鱉仔)   2016-06-07 19:45:00

Links booklink

Contact Us: admin [ a t ] ucptt.com