2016-02-05 617 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

相关问题