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"

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

          // AWS S3 storage requires configured Credentials
          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"
          forceVirtualHostAddressing = true
          multipartThreshold = "6MB"
          multipartChunksize = "8MB"
          connectionId = "AWS Connection ID"

          //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 = "credentialsJSON:CloudFront-private-key-link"
        }
} }

Example. Adds new storage that allows TeamCity to store build artifacts in S3 and upload/download them with Transfer Acceleration

project {
    // Other Project settings ...
    features {
        // Other Project Features ...
        s3Storage {
          id = "S3_STORAGE_ID"
          storageName = "Storage Name"
          bucketName = "Bucket_Name"
          connectionId = "AWS Connection ID"

          // must be set to true to enable Transfer Acceleration
          forceVirtualHostAddressing = true
          enableTransferAcceleration = true
        }
} }

Example. S3 Storage. Disable integrity verification

project {
    // Other Project settings ...
    features {
        // Other Project Features ...
        s3Storage {
          id = "S3_STORAGE_ID"
          storageName = "Storage Name"
          bucketName = "Bucket_Name"
          connectionId = "AWS Connection ID"

          verifyIntegrityAfterUpload = false
        }
} }

Example. AWSEnvironment. Selects default environment with specific AWS region

awsEnvironment = default {
  awsRegionName = ""
}

Example. AWSEnvironment. Selects custom environment with specific region

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

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"): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
fun clear()
Link copied to clipboard
fun <T : CompoundParam<T>> compoundParameter(customName: String? = null): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, 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): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
fun <E : Enum<E>> enumParameter(customName: String? = null, mapping: Map<E, String?>? = null): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
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): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
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
open fun stringParameter(customName: String? = null): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
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: <ERROR CLASS>

AWS account secret access key

Link copied to clipboard
var accessKeyID: <ERROR CLASS>

AWS account access key ID

Link copied to clipboard
var awsEnvironment: <ERROR CLASS>
Link copied to clipboard
var bucketName: <ERROR CLASS>

Bucket name

Link copied to clipboard
var bucketPrefix: <ERROR CLASS>

Bucket path prefix

Link copied to clipboard
var cloudFrontDownloadDistribution: <ERROR CLASS>

Name of CloudFront distribution for downloads

Link copied to clipboard
var cloudFrontEnabled: <ERROR CLASS>

Whether to use CloudFront for artifact transport

Link copied to clipboard
var cloudFrontPrivateKey: <ERROR CLASS>

Private key that corresponds to chosen public key

Link copied to clipboard
var cloudFrontPublicKeyId: <ERROR CLASS>

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

Link copied to clipboard
var cloudFrontUploadDistribution: <ERROR CLASS>

Name of CloudFront distribution for uploads

Link copied to clipboard
var connectionId: <ERROR CLASS>

The ID of configured AWS Connection to access the AWS S3. @see AwsConnection

Link copied to clipboard
var credentials: <ERROR CLASS>
Link copied to clipboard
var enablePresignedURLUpload: <ERROR CLASS>

Whether to use Pre-Signed URLs to upload

Link copied to clipboard
var enableTransferAcceleration: <ERROR CLASS>

Whether to enable Transfer Acceleration

Link copied to clipboard
var forceVirtualHostAddressing: <ERROR CLASS>

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: <ERROR CLASS>

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: <ERROR CLASS>

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: <ERROR CLASS>

Storage name

Link copied to clipboard
var type: String

Project feature type

Link copied to clipboard
var useDefaultCredentialProviderChain: <ERROR CLASS>

Use default credential provider chain

Link copied to clipboard
var verifyIntegrityAfterUpload: <ERROR CLASS>

Whether to verify integrity of artifacts after upload