Skip to content

1.2.7 - Flexible HeaderProvider for S3 Uploads

Choose a tag to compare

@projectdelta6 projectdelta6 released this 19 Feb 08:57
· 254 commits to main since this release
9697eef

Breaking Change

S3Uploader / S3Uploader-Multipart: Replaced AuthTokenProvider with a new HeaderProvider interface.

The previous AuthTokenProvider only supported Bearer token authentication. The new HeaderProvider gives full control over which HTTP headers are sent with S3 upload API requests, supporting custom header names, multiple headers, or no auth at all.

Migration

Before (1.2.6):

S3Uploader.initS3Uploader(
    tokenProvider = AuthTokenProvider { authRepository.getCurrentToken() }
)

After (1.2.7) — Bearer token (most common):

S3Uploader.initS3Uploader(
    headerProvider = HeaderProvider.bearer { authRepository.getCurrentToken() }
)

Custom header name:

S3Uploader.initS3Uploader(
    headerProvider = HeaderProvider.custom("User-Api-Token") { apiKeyStore.getKey() }
)

Multiple headers:

S3Uploader.initS3Uploader(
    headerProvider = HeaderProvider {
        buildMap {
            val token = getToken()
            if (!token.isNullOrBlank()) put("Authorization", "Bearer $token")
            put("X-App-Version", BuildConfig.VERSION_NAME)
        }
    }
)

Other Changes

  • Clarified backend API spec for repeated presign-part requests in multipart uploads
  • README version bumps across all modules