2016-02-05 81 views
0

編輯: -需要將在Amazon S3上創建的一些文件移動到Azure Blob存儲,我以前沒有使用過Amazon S3,並且提供的詳細信息包括我不是100%關於如何使用C#中的AWSSDK.S3 NuGet包的'路徑'..使用C#使用AWSSDK.S3驗證Amazon S3存儲桶

因此,從未使用過Amazon S3,並嘗試構建一個天藍色的輔助角色(或webjob)觀看這個存儲位置,並在出現時將文件或文件移動到Azure Blob存儲 - 看起來相當容易,但我在S3的身份驗證階段失敗,問題在於我擁有的「路徑」變量。

我一直在使用Cyber​​duck的測試我的連接,我有以下PARAMS:

Access Key Id, Secret Access Key, and Path.. the Path is just "folder/folder/" 

沒有路,我收到拒絕訪問響應從Cyber​​duck的......很好,這是預期 - 但我不能瞭解如何將路徑嵌入到Visual Studio AWS憑證管理器中,或者嵌入到我編寫的測試控制檯線束中的代碼中。

處理證書的AWS Explorer只允許我輸入:

Access Key Id, Secret Access Key, Account Number ???? 

我需要手動編碼這一切嗎?在審查這一點,但沒有真正有足夠的時間今天來消化它:

https://blogs.aws.amazon.com/net/post/Tx1310VG2O81PSY/Referencing-Credentials-using-Profiles 

乾杯,

泰。

回答

2

設法得到某種分辨率的這個到底,歡呼向下投票人:/

在原崗位我說,我試圖導航到「文件夾/文件夾「第一個文件夾實際上是存儲桶的名稱(所以事實證明) - 我不是這個S3帳戶的管理員,所以我非常盲目。

string AccessKeyId = "REMOVED"; 
string SecretAccessKey = "nOt/a+ReAl/kEY"; 
BasicAWSCredentials awsCreds = new BasicAWSCredentials(AccessKeyId, SecretAccessKey); 

AmazonS3Config S3Config = new AmazonS3Config 
{ 
    ServiceURL = "https://folder.s3.amazonaws.com/", 
    RegionEndpoint = RegionEndpoint.USEast1 
}; 

AmazonS3Client s3Client = new AmazonS3Client(awsCreds, S3Config); 

ListObjectsRequest request = new ListObjectsRequest(); 
request.BucketName = "folder"; 
request.Prefix = "folder/another_folder/"; 

ListObjectsResponse response = s3Client.ListObjects(request); 
foreach (var item in response.S3Objects) 
{ 
    sr.WriteLine(item.Key.ToString()); 
} 

希望這可以幫助別人,依然保持了SDK DOCO是可怕的;)

我將放在app.config中的憑據,我的猜測是最好的做法是什麼?

+0

顯然app.config不是實際上最好的做法..它使用的是憑證文件,但我無法得到這個工作,所以他們基本上在app.config! :) – m1nkeh

0

也許結賬AWS .net SDK? https://aws.amazon.com/sdk-for-net/ https://www.nuget.org/packages?q=aws

既然你是在Azure上運行你的服務,爲什麼不使用Azure的Blob存儲? https://www.nuget.org/packages?q=Azure+Blob+Storage

+0

嗨,我已經檢查了SDK,在我看來這是相當糟糕的文件..我已經得到它的工作,但我已提供的細節我看不清(清楚)如何還添加「路徑」連接憑據 – m1nkeh

+0

我所做的目標是將文件從Amazon S3出現時移動到Azure Blob存儲..所以是的,我同意你的第二點;) – m1nkeh

相關問題