AWS SDK для .NET#

Использование S3 через aws-sdk-net#

Для подключения AWS SDK для .NET (AWSSDK.core версии 3.3.22.3 или старше) к объектному хранилищу Облака КРОК необходимо выполнить следующие шаги:

  1. Получить настройки для доступа по API в виде текстового файла .sh. Для этого нажмите на логин пользователя в правом верхнем углу и выберите Профиль Получить настройки доступа к API.

  2. Установить в переменные окружения параметры подключения к Облаку КРОК.

  3. Создать проект .NET и добавить в него пакеты AWSSDK.Core и AWSSDK.S3 из документации aws-sdk.

  4. Добавить в проект файл endpoints.json и установить ему Copy to Output Directory: Copy always (либо положить этот файл в уже собранную директорию с приложением).

    endpoints.json
    {
      "endpoints": {
        "croc/s3": {
          "endpoint": "storage.cloud.{region}.ru",
          "auth-region": "croc"
        },
        "croc/ec2": {
          "endpoint": "monitoring.cloud.{region}.ru",
          "auth-region": "croc"
        },
        "croc/monitoring": {
          "endpoint": "api.cloud.{region}.ru"
        }
      },
      "partitions": [
        {
          "defaults": {
            "protocols": [ "https" ],
            "signatureVersions": [ "v4" ]
          },
          "dnsSuffix": "cloud.croc.ru",
          "partition": "croc",
          "partitionName": "CROC Cloud",
          "regionRegex": "^croc$",
          "regions": {
            "croc": {
              "description": "Main CROC Cloud region"
            }
          },
          "services": {
            "ec2": {
              "defaults": {
                "hostname": "api.cloud.{region}.ru",
                "protocols": [ "http", "https" ]
              },
              "endpoints": {
                "croc": {}
              }
            },
            "monitoring": {
              "defaults": {
                "hostname": "monitoring.cloud.{region}.ru",
                "protocols": [ "http", "https" ]
              },
              "endpoints": {
                "croc": {}
              }
            },
            "s3": {
              "defaults": {
                "hostname": "storage.cloud.{region}.ru",
                "protocols": [ "http", "https" ],
                "signatureVersions": [ "s3", "s3v4" ]
              },
              "endpoints": {
                "croc": {}
              }
            }
          }
        }
      ],
      "version": 3
    }
    
  5. Прописать в конфигурационном файле App.config раздел aws:

    App.config#
    <aws region="croc"/>
    
  6. Создать клиента api:

    Program.cs#
    var client = new AmazonS3Client();