【发布时间】:2016-10-14 12:40:05
【问题描述】:
我在 app.config 中有这个:
<appSettings>
<add key="AWSProfileName" value="myName"/>
<add key="AWSRegion" value="eu-west-1" />
</appSettings>
然后我尝试运行这个:
using Amazon.S3;
using Amazon.S3.Model;
namespace createCSV
{
class S3
{
public void uploadObject()
{
//IAmazonS3 client;
string AwsAccessKey = "xxxxxxxxxxxxx";
string AwsSecretKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
IAmazonS3 client = new AmazonS3Client(AwsAccessKey,AwsSecretKey);
PutObjectRequest request = new PutObjectRequest()
{
BucketName = @"http://s3-eu-west-1.amazonaws.com/bucketName/",
Key = @"test/blah.txt",
FilePath = @"P:\data_analysis\foo\blah.txt"
};
PutObjectResponse response2 = client.PutObject(request); //<<exception here
}
}
}
我在标记为:
输出>>
无法找到或打开 PDB 文件。抛出异常: AWSSDK.dll 中的“Amazon.S3.AmazonS3Exception”
AmazonS3exception 未处理:
发生“Amazon.S3.AmazonS3Exception”类型的未处理异常 在 AWSSDK.dll 中
附加信息:指定的存储桶不存在
我已经为BucketName = @"http://s3-eu-west-1.amazonaws.com/bucketName/" 行尝试了许多不同的配置,但仍然是相同的例外 - 谁能帮忙?
【问题讨论】:
-
检查网址是否正确。
-
@viveknuna 如果我将 url 添加到浏览器中,它不会给出 404,而是转到一个页面说访问被拒绝,这看起来不错?
-
使您的资源无效,然后尝试。
-
使用小写的存储桶名称。 Bucket restrictions 在使用名为 MyAWSBucket 的存储桶时有一个确切错误情况的示例,该存储桶解析为 myawsbucket 并以未找到存储桶错误结束。
-
如此处所示 (docs.aws.amazon.com/sdkfornet/v3/apidocs/Index.html) BucketName 应该只是存储桶的名称,而不是整个 URL。您可以在创建 AmazonS3Client 对象时指定服务端点。
标签: c# amazon-web-services amazon-s3