2014-07-23 39 views
0

创建我的AWS客户端,而不passind在我的令牌或秘密,就像这样:保护亚马逊S3存储

AWSClientFactory.CreateAmazonS3Client() 

我就能够使用上传图片:

var request = new PutObjectRequest 
       { 
        BucketName = _bucketName, 
        CannedACL = S3CannedACL.PublicRead, 
        Key = key, 
        InputStream = inputStream, 
        ContentType = contentType 
       }; 

       _amazonS3Client.PutObject(request); 

我指定我的存储桶的权限,以便只有我有权写入,但通过此代码判断,由于我没有传入我的凭据,我一定会感到委屈吗?

我不正常配置我的S3存储桶吗?

回答

1

您已经创建Amazon S3客户端而不通过您的AWS凭证,它可以使用从应用程序的默认配置加载的凭据为Amazon S3服务创建客户端,并且如果EC2实例上的实例配置文件服务不成功。

示例设置了凭据的App.config。

例如:App.config中设置凭据:

<?xml version="1.0" encoding="utf-8" ?> <configuration> 
    <appSettings> 
     <add key="AWSAccessKey" value="********************"/> 
     <add key="AWSSecretKey" value="****************************************"/> 
    </appSettings> </configuration> 

这样,你就能够成功地将物件上传至您的S3桶。

详情参见:http://docs.aws.amazon.com/sdkfornet1/latest/apidocs/html/T_Amazon_AWSClientFactory.htm

+0

我没有在我的配置中包括这些字段... – shenku

+0

你在EC2实例吗? –

0

如果按照AWS文件,你会看到有要创造一个AWS的SDK可以直接访问它 (http://docs.aws.amazon.com/AWSSdkDocsNET/V2/DeveloperGuide/net-dg-config-creds.html

检查证书文件几种方法表示“有几种方法可以管理SDK商店中的配置文件”。使用文档检查您使用的配置。

您可以通过替换您使用无效字符串设置的say认证文件来测试连接,例如, “XXXXXXXX”,然后再次尝试连接以证明它。