Как настроить конечную точку с помощью aws-sdk net? - PullRequest
0 голосов
/ 08 мая 2019

Кто-нибудь знает, как добавить пользовательскую конечную точку с помощью s3 net API ??
Подробно : https://github.com/aws/aws-sdk-net/issues/1283 Код языка: C #

значение sServiceUrl = "192.168.199.216:7480"

когда я вызываю функцию DoesS3BucketExist, я пересматривал исключение (System.UriFormatException)

Это мой код

        public IAmazonS3 CreateClient(string sAccessKeyId, string sAccessKeySecret, string sServiceUrl)
        {
            AmazonS3Client s3Client = null;
            try
            {
                AmazonS3Config config = new AmazonS3Config();
                config.ServiceURL = sServiceUrl;
                config.UseHttp = false;
                config.SignatureVersion = "v4";
                AWSConfigsS3.UseSignatureVersion4 = true;

                s3Client = new AmazonS3Client(
                        sAccessKeyId,
                        sAccessKeySecret,
                        config
                        );
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog("AWS配置", ex, "创建AmazonS3Client失败!");
            }
            return s3Client;
        }

public bool DoesBucketExist(string bucketName)
{
    bool bIsExist;
    if (this.Client != null)
    {
        bIsExist = this.Client.DoesS3BucketExist(bucketName);
    }
    else
    {
        bIsExist = false;
    }
    return bIsExist;
}

я хочу установить это свойство AWSConfigs.EndpointDefinition = @"c:pathtoendpoints.xml";, ноя не знаю, как создать файл endpoints.json.

мне так сложно, может быть, мне нужна помощь бога! Любая помощь будет признательна!

1 Ответ

0 голосов
/ 08 мая 2019
static void Main(string[] args)
    {
        string accessKey = "";
        string secretKey = "";

        AmazonS3Config config = new AmazonS3Config()
        {
            ServiceURL = string.Format("http://{0}", "192.168.199.216:7480"),
            UseHttp = true,
            ForcePathStyle = true,
            ProxyHost = "192.168.199.216",
            ProxyPort = 7480
        };

        AWSCredentials creds = new BasicAWSCredentials(accessKey, secretKey);
        AmazonS3Client s3Client = new AmazonS3Client(creds, config);
        try
        {
            ListBucketsResponse response = s3Client.ListBuckets();
            foreach (S3Bucket b in response.Buckets)
            {
                Console.WriteLine("{0}\t{1}", b.BucketName, b.CreationDate);
            }
        }
        catch (Exception ex)
        {

            throw;
        }
...