c# – 访问未使用.Net SDK的美国区域的存储桶时遇到问题

前端之家收集整理的这篇文章主要介绍了c# – 访问未使用.Net SDK的美国区域的存储桶时遇到问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近一直在尝试编写代码添加删除Amazon S3存储桶中的内容.我是Amazon S3和AmazonWS .Net SDK的新手.

存储区域端点是http://sqs.eu-west-1.amazonaws.com所以我构建了我的客户端,如下所示:

_s3Client = AWSClientFactory.CreateAmazonS3Client(accessKey,awsSecretKey,new AmazonS3Config().WithServiceURL("http://sqs.eu-west-1.amazonaws.com"));

如果我遗漏了AmazonS3Config位,我会收到此错误

A redirect was returned without a new location. This can be caused by
attempting to access buckets with periods in the name in a different
region then the client is configured for.

当我输入AmazonS3Config位时,我不再收到该错误,但我似乎无法访问此存储桶或我通常可以访问的任何其他存储桶.我发送的任何请求都返回null.

我已经使用配置到标准美国区域的其他存储桶测试了我的代码,这一切都运行良好.唯一的区别在于CreateAmazonS3Client方法,我在其中设置了具有EU端点的配置.

有人可以给我一些指导,说明我应该如何让我的客户在欧盟(爱尔兰)地区工作.我一直在寻找几个小时,我所遵循的每个教程或文档到目前为止都没有工作.

解决方法

只需使用标准端点 – s3.amazonaws.com
AmazonS3Config S3Config = new AmazonS3Config {
    ServiceURL = "s3.amazonaws.com",CommunicationProtocol = Amazon.S3.Model.Protocol.HTTP
};

AmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(AWS_Key,AWS_SecretKey,S3Config);

PutObjectRequest UploadToS3Request = new PutObjectRequest();
UploadToS3Request.WithFilePath(localPath)
                 .WithBucketName(bucket)
                 .WithKey(key);

client.PutObject(UploadToS3Request);
原文链接:https://www.f2er.com/csharp/98277.html

猜你在找的C#相关文章