引入库
implementation 'com.amazonaws:aws-android-sdk-core:2.6.19'
implementation 'com.amazonaws:aws-android-sdk-s3:2.6.19'
implementation 'com.amazonaws:aws-android-sdk-ddb:2.6.19'
implementation 'com.amplifyframework:aws-auth-cognito:1.37.2'
implementation 'com.amplifyframework:core:1.37.2'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
fun uploadImageToS3(file:File){
var cognitoCaching = CognitoCachingCredentialsProvider(this.context, "cn-north-1:XXX", Regions.CN_NORTH_1)
var configuration = ClientConfiguration()
configuration.connectionTimeout = 50000
configuration.socketTimeout = 300000
var s3: AmazonS3 = AmazonS3Client(cognitoCaching, configuration)
var transferUtility = TransferUtility.builder().s3Client(s3).context(context).build()
var len = file.length()
var transferObserver = transferUtility.upload("XXX", file.name, file)
transferObserver.setTransferListener(object :TransferListener{
override fun onStateChanged(id: Int, state: TransferState?) {
Log.i("onStateChanged", "$state")
}
override fun onProgressChanged(id: Int, bytesCurrent: Long, bytesTotal: Long) {
Log.i("onProgressChanged", "$bytesCurrent")
}
override fun onError(id: Int, ex: Exception?) {
Log.i("onError", "$ex")
}
})
}