2017-10-16 18 views
0

storage.googleapis.comのバケットをC#のAmazon Web Services .Net SDKを使用して読み込もうとしています。Google S3 APIでバケットにアクセス

Authを使用しているだけで、GoogleのS3エンドポイント設定の実例を誰でも提供できます。キー/秘密のペアとバケット名?または、他の方法を使用してこれを稼働させますか?

this tutorialによると、これは簡単なことですが、指示に従うときには何らかの例外があります。ここに私の現在の試みの抽出があります - これはTrustFailure例外をスローします:

リモート証明書が無効です。

AmazonS3Config conf = new AmazonS3Config(); 
// Set regionEndpoint to null, or else the serviceURL will be ignored 
conf.RegionEndpoint = null; 
conf.ServiceURL = "https://s3.storage.googleapis.com"; 
conf.UseHttp = false; 
conf.AuthenticationRegion = null; 
conf.UseAccelerateEndpoint = false; 
conf.UseDualstackEndpoint = false; 

AWSCredentials cred = new BasicAWSCredentials("GOOG3LFXXXXXXXXXXXXX", "BQ6VeMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");   
IAmazonS3 client = new AmazonS3Client(cred, conf); 

GetBucketVersioningRequest request = new GetBucketVersioningRequest { BucketName = "hisbucket" }; 
GetBucketVersioningResponse response = client.GetBucketVersioning(request); 
+0

例外を追加します。 – user1506104

答えて

0

あなたは、Amazon S3サービスのURL、アクセスキーID、秘密アクセスキーIDとバケット名が必要です。

var s3Config = new AmazonS3Config 
    { 
     ServiceURL = Constants.AmazonS3ServiceUrl, 
     RegionEndpoint = Amazon.RegionEndpoint.EUWest1 
    }; 

    string accessKeyId = Constants.AmazonAccessKeyId; 
    string secretAccessKey = Constants.AmazonSecretAccessKey; 

    var config = new AwsS3Config(){AmazonS3BucketName = Constants.AmazonS3BucketName}; 
    var client = new AmazonS3Client(accessKeyId, secretAccessKey, s3Config); 

次に、あなたがアマゾンのクライアントへの呼び出しを行うことができる必要があります:

var request = new GetObjectRequest 
{ 
    BucketName = _bucketName, 
    Key = entity.Path 
}; 

var response = _client.GetObjectAsync(request).Result; 

上記のコードは、S3のアカウント上で動作し、あなたのケースではありません特にstorage.googleapis.com、。とにかく、これが助けてあなたの質問に答えることを願っています。

+0

返信いただきありがとうございますが、データソースがGoogleに移行している間にAmazonバケツに対応しています。 RegionEndpointクラスはs3.storage.googleapisには意味がありません - これは問題の一部です! 「シンプルマイグレーション」のドキュメントでは、AWS SDKでこれを行う方法の手がかりがないため、目標に近づくことはできません。 –

関連する問題