C# 保护Amazon S3存储桶

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,

我创建的AWS客户端在令牌或机密中没有passind,如下所示:

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实例?