1.2.7 - Flexible HeaderProvider for S3 Uploads
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