S3Storage

open class S3Storage : ProjectFeature
fun ProjectFeatures.s3Storage(init: S3Storage.() -> Unit): S3Storage

Amazon S3 Artifact Storage

Example. Adds new storage that allows TeamCity to store build artifacts in S3

project {
    // Other Project settings ...
    features {
        // Other Project Features ...
        s3Storage {
          id = "S3_STORAGE_ID"
          storageName = "Storage Name"

          bucketName = "Bucket Name"
          bucketPrefix = "path prefix inside the bucket"

          forceVirtualHostAddressing = true
          enableTransferAcceleration = false
          multipartThreshold = "8MB"
          multipartChunksize = "8MB"

          // Storage requires configured AwsEnvironment
          awsEnvironment = default {
            awsRegionName = "AWS region"
          }

          // Storage also requires configured Credentials
          connection = awsConnection {
            connectionId = "AWS Connection ID"
          }
        }
} }

Example. Adds new storage that allows TeamCity to store build artifacts in S3 and upload/download them using CloudFront

project {
    // Other Project settings ...
    features {
        // Other Project Features ...
        s3Storage {
          id = "S3_STORAGE_ID"
          storageName = "Storage Name"
          bucketName = "Bucket Name"
          bucketPrefix = "path prefix inside the bucket"
          forceVirtualHostAddressing = true
          multipartThreshold = "6MB"
          multipartChunksize = "8MB"

          //CloudFront configuration
          cloudFrontEnabled = true
          cloudFrontUploadDistribution = "ID of CloudFront Distribution used for uploads"
          cloudFrontDownloadDistribution = "ID of CloudFront Distribution used for downloads"
          cloudFrontPublicKeyId = "ID of CloudFront public key"
          cloudFrontPrivateKey = "Link to credentialsJSON property containing CloudFront private key"

          // Storage requires configured AwsEnvironment
          awsEnvironment = default {
            awsRegionName = "AWS region"
          }

          // Storage also requires configured Credentials
          connection = customConnection {
            accessKeyID = "AWS Access key ID"
            accessKey = "Link to credentialsJSON property containing AWS access key"
          }
        }
} }

Example. AWSEnvironment. Selects default environment with specific AWS region

awsEnvironment = default {
  awsRegionName = "AWS region"
}

Example. AWSEnvironment. Selects custom environment with specific region

awsEnvironment = custom {
  endpoint = "URL of custom endpoint"
  awsRegionName = "region"
}

Example. Credentials. Specifies credentials using an ID of configured AWS Connection. @see AwsConnection

connection = awsConnection {
    connectionId = "AWS Connection ID"
}

Example. Credentials. Specifies credentials using access key

connection = customConnection {
  accessKeyID = "AWS Access key ID"
  accessKey = "Link to credentialsJSON property containing AWS access key"
}

Example. Credentials. Specifies credentials using default provider chain

useDefaultCredentialProviderChain = true

See also

Constructors

Link copied to clipboard
fun S3Storage(init: S3Storage.() -> Unit)
Link copied to clipboard
fun S3Storage()

Types

Link copied to clipboard
sealed class AwsEnvironment : CompoundParam<S3Storage.AwsEnvironment>
Link copied to clipboard
sealed class Credentials : CompoundParam<S3Storage.Credentials>

Functions

Link copied to clipboard
fun accessKeys(): S3Storage.Credentials.AccessKeys

Use pre-configured AWS account access keys

Link copied to clipboard
fun booleanParameter(    customName: String? = null,     trueValue: String? = "true",     falseValue: String? = "false"): SingleDelegateProvider<Boolean>
Link copied to clipboard
fun clear()
Link copied to clipboard
fun <T : CompoundParam<T>> compoundParameter(customName: String? = null): CompoundDelegateProvider<T>
Link copied to clipboard
fun <T : Parametrized> copyParamsTo(target: T): T

Copies parameters of this object to the specified target

Link copied to clipboard
open fun create(): ProjectFeature

Creates an instance of this project feature via reflection using a no argument constructor, used during copying. Throws an error if this class doesn't have a default constructor. Subclasses can override it to create an instance without using a default constructor.

Link copied to clipboard
fun custom(init: S3Storage.AwsEnvironment.Custom.() -> Unit = {}): S3Storage.AwsEnvironment.Custom
Link copied to clipboard
fun default(init: S3Storage.AwsEnvironment.Default.() -> Unit = {}): S3Storage.AwsEnvironment.Default
Link copied to clipboard
fun doubleParameter(customName: String? = null): SingleDelegateProvider<Double>
Link copied to clipboard
fun <E : Enum<E>> enumParameter(customName: String? = null, mapping: Map<E, String?>? = null): SingleDelegateProvider<E>
Link copied to clipboard
fun findRawParam(paramName: String): Parameter?
Link copied to clipboard
fun hasParam(paramName: String): Boolean
Link copied to clipboard
fun intParameter(customName: String? = null): SingleDelegateProvider<Int>
Link copied to clipboard
fun param(name: String, value: String)

Adds parameter with specified name and value

Link copied to clipboard
fun removeRawParam(paramName: String)
Link copied to clipboard
fun stringParameter(customName: String? = null): SingleDelegateProvider<String>
Link copied to clipboard
fun temporary(init: S3Storage.Credentials.Temporary.() -> Unit = {}): S3Storage.Credentials.Temporary

Get temporary access keys via AWS STS

Link copied to clipboard
open override fun toString(): String
Link copied to clipboard
open override fun validate(consumer: ErrorConsumer)

Validates this object and reports found errors to the provided consumer

Properties

Link copied to clipboard
var accessKey: String?

AWS account secret access key

Link copied to clipboard
var accessKeyID: String?

AWS account access key ID

Link copied to clipboard
var awsEnvironment: S3Storage.AwsEnvironment?
Link copied to clipboard
var bucketName: String?

Bucket name

Link copied to clipboard
var bucketPrefix: String?

Bucket path prefix

Link copied to clipboard
var cloudFrontDownloadDistribution: String?

Name of CloudFront distribution for downloads

Link copied to clipboard
var cloudFrontEnabled: Boolean?

Whether to use CloudFront for artifact transport

Link copied to clipboard
var cloudFrontPrivateKey: String?

Private key that corresponds to chosen public key

Link copied to clipboard
var cloudFrontPublicKeyId: String?

Id of Public Key in CloudFront that has access to selected distribution

Link copied to clipboard
var cloudFrontUploadDistribution: String?

Name of CloudFront distribution for uploads

Link copied to clipboard
var credentials: S3Storage.Credentials?
Link copied to clipboard
var enablePresignedURLUpload: Boolean?

Whether to use Pre-Signed URLs to upload

Link copied to clipboard
var enableTransferAcceleration: Boolean?

Whether to enable Transfer Acceleration

Link copied to clipboard
var forceVirtualHostAddressing: Boolean?

Whether to force Virtual Host Addressing

Link copied to clipboard
var id: String? = null

Project feature id, if not specified will be generated

Link copied to clipboard
var multipartChunksize: String?

Specify the maximum allowed part size. Minimum value is 5MB. Allowed suffixes: KB, MB, GB, TB. Leave empty to use the default value.

Link copied to clipboard
var multipartThreshold: String?

Initiates multipart upload for files larger than the specified value. Minimum value is 5MB. Allowed suffixes: KB, MB, GB, TB. Leave empty to use the default value.

Link copied to clipboard
val params: List<Parameter>
Link copied to clipboard
var storageName: String?

Storage name

Link copied to clipboard
var type: String

Project feature type

Link copied to clipboard
var useDefaultCredentialProviderChain: Boolean?

Use default credential provider chain