fun getStorage()

in google-storage-common/src/main/kotlin/jetbrains/buildServer/serverSide/artifacts/google/GoogleUtils.kt [21:40]


    fun getStorage(parameters: Map<String, String>): Storage {
        if (parameters[GoogleConstants.CREDENTIALS_TYPE] == GoogleConstants.CREDENTIALS_ENVIRONMENT) {
            return StorageOptions.getDefaultInstance().service
        }

        val builder = StorageOptions.newBuilder()
        parameters[GoogleConstants.PARAM_ACCESS_KEY]?.trim()?.byteInputStream()?.use {
            val factory = Utils.getDefaultJsonFactory()
            val parser = factory.createJsonParser(it)
            val json = parser.parse(GenericJson::class.java)
            json[PROJECT_ID]?.let { id ->
                builder.setProjectId(id as String)
            }

            it.reset()
            builder.setCredentials(GoogleCredentials.fromStream(it))
        }

        return builder.build().service
    }