Advertisement
Guest User

aws

a guest
Dec 10th, 2019
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.38 KB | None | 0 0
  1. package com.blendin.app.Utl
  2.  
  3. import android.content.Context
  4. import android.graphics.Bitmap
  5. import com.amazonaws.auth.BasicAWSCredentials
  6. import com.amazonaws.mobile.client.AWSMobileClient
  7. import com.amazonaws.mobileconnectors.s3.transferutility.TransferListener
  8. import com.amazonaws.mobileconnectors.s3.transferutility.TransferState
  9. import com.amazonaws.mobileconnectors.s3.transferutility.TransferUtility
  10. import com.amazonaws.services.s3.AmazonS3Client
  11. import com.amazonaws.services.s3.model.CannedAccessControlList
  12. import com.blendin.app.R
  13. import com.blendin.core.extentions.toast
  14. import timber.log.Timber
  15. import java.io.File
  16. import java.io.FileOutputStream
  17. import java.io.OutputStream
  18.  
  19. class WpsService {
  20. companion object {
  21.  
  22. fun initWPS(context: Context) {
  23. AWSMobileClient.getInstance().initialize(context).execute()
  24. }
  25.  
  26. fun uploadImage(
  27. fileName: String,
  28. bitmap: Bitmap,
  29. context: Context,
  30. onUploaded: () -> Unit,
  31. onError: () -> Unit
  32. ) {
  33. val credentials = BasicAWSCredentials(
  34. context.resources.getString(R.string.WPS_KEY),
  35. context.resources.getString(R.string.WPS_SECRET)
  36. )
  37.  
  38. val s3Client = AmazonS3Client(credentials)
  39.  
  40. val transferUtility = TransferUtility.builder()
  41. .context(context)
  42. .awsConfiguration(AWSMobileClient.getInstance().configuration)
  43. .s3Client(s3Client)
  44. .build()
  45.  
  46. val file: File = persistImage(bitmap, context)
  47.  
  48. val uploadObserver = transferUtility.upload(
  49. "blendin-userfiles-mobilehub-1929261559",
  50. "jsaS3/$fileName",
  51. file,
  52. CannedAccessControlList.PublicRead
  53. )
  54.  
  55. uploadObserver.setTransferListener(object : TransferListener {
  56. override fun onProgressChanged(id: Int, bytesCurrent: Long, bytesTotal: Long) {
  57. val percentDonef = bytesCurrent / bytesTotal * 100
  58. val percentDone = percentDonef.toInt()
  59. Timber.e("PERCENT$percentDone.toString()")
  60. }
  61.  
  62. override fun onStateChanged(id: Int, state: TransferState?) {
  63. if (TransferState.COMPLETED == state) {
  64. context.toast("UPLOADED!")
  65. Timber.e("UPLOAD")
  66. onUploaded()
  67. }
  68. }
  69.  
  70. override fun onError(id: Int, ex: Exception?) {
  71. onError()
  72. context.toast("Error WPS :" + ex!!.message!!)
  73. Timber.e("Error WPS :" + ex.message!!)
  74. }
  75. })
  76. }
  77.  
  78. fun persistImage(bitmap: Bitmap, context: Context): File {
  79. val filesDir: File = context.filesDir
  80. val imageFile = File(filesDir, "testImg" + ".jpg")
  81.  
  82. var os: OutputStream
  83. try {
  84. os = FileOutputStream(imageFile)
  85. bitmap.compress(Bitmap.CompressFormat.JPEG, 100, os)
  86. os.flush()
  87. os.close()
  88. } catch (e: Exception) {
  89. com.github.ajalt.timberkt.e { "Error writing bitmap$e" }
  90. }
  91. return imageFile
  92. }
  93. }
  94.  
  95.  
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement