C# 保护Amazon S3存储桶
我创建的AWS客户端在令牌或机密中没有passind,如下所示:C# 保护Amazon S3存储桶,c#,amazon-web-services,amazon-s3,C#,Amazon Web Services,Amazon S3,我创建的AWS客户端在令牌或机密中没有passind,如下所示: AWSClientFactory.CreateAmazonS3Client() 然后,我可以使用以下方式上传图像: var request = new PutObjectRequest { BucketName = _bucketName, CannedACL = S3CannedACL.PublicRead,
AWSClientFactory.CreateAmazonS3Client()
然后,我可以使用以下方式上传图像:
var request = new PutObjectRequest
{
BucketName = _bucketName,
CannedACL = S3CannedACL.PublicRead,
Key = key,
InputStream = inputStream,
ContentType = contentType
};
_amazonS3Client.PutObject(request);
我已经为我的bucket指定了权限,所以只有我有写的权限,但是根据这段代码判断,我一定是错的,因为我没有传递我的凭据
我是否直接配置了我的S3存储桶?您创建了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>
如果您遵循aws文档,您将看到创建凭证文件的方法很少,aws SDK可以直接访问凭证文件
()
检查“有几种方法可以管理SDK存储中的配置文件”这一行。使用文档检查您使用的配置
您可以通过使用无效字符串(例如“XXXXXXXX”)替换您设置的say凭证文件来测试连接,然后再次尝试连接以验证连接。您是否使用EC2实例?