我最近一直在尝试编写代码来添加和删除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);