[英]Access denied for .net AWS SDK when trying to list buckets
我遇到了一個問題,我試圖使用適用於AWS S3的.net C#SDK來簡單列出存儲桶,但是我總是會遇到“訪問被拒絕”異常。 我在Windows 10上工作。
錯誤消息是: Amazon.S3.AmazonS3Exception: 'Access Denied'
我的C#代碼是:
namespace AwsEmptyApp1
{
class Program
{
public static void Main(string[] args)
{
IAmazonS3 client = new AmazonS3Client();
ListBucketsResponse response = client.ListBuckets();
foreach (S3Bucket b in response.Buckets)
{
Console.WriteLine("{0}\t{1}", b.BucketName, b.CreationDate);
}
Console.Read();
}
}
}
我嘗試通過以下方式手動設置代理:
AmazonS3Config config = new AmazonS3Config();
config.RegionEndpoint = //ENDPOINT
config.ProxyHost = //Proxy http://USERNAME:PASSWORD@PROXYIP:PROXYPORT
要么:
AmazonS3Config config = new AmazonS3Config();
config.RegionEndpoint = //ENDPOINT
config.ProxyHost = //Proxy http://PROXYIP:PROXYPORT
config.ProxyPort = 8080;
config.ProxyCredentials = new NetworkCredential(user, pw);
奇怪的是,它正在使用本地CLI。 aws s3api head-bucket --bucket [BUCKETNAME]
正在工作。 aws s3 ls [BUCKET]
工作正常。 我也可以在網絡界面中看到所有數據。
我用aws sts get-caller-identity
檢查了我的角色,並用aws configure list
檢查了我的憑據,一切正常。
我正在代理工作。 代理設置在我的用戶和系統變量HTTP_PROXY
和HTTPS_PROXY
中設置,格式為http://USERNAME:PASSWORD@PROXYIP:PROXYPORT
。
我的AWS憑證存儲在C:\\Users\\[User]\\.aws\\credentials
您對我有什么建議嗎?
謝謝! :)
解決了:)
我有一個本地app.config
文件,在其中必須聲明憑據文件中要使用的配置文件以及使用的區域:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="AWSProfileName" value="name"/>
<add key="AWSRegion" value="region" />
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
然后,我在憑據文件中添加了role_arn=
,並且可以正常工作(只是必須在AWSSDK.SecurityToken
中安裝AWSSDK.SecurityToken
,因為它也丟失了)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.