在我使用 Kotlin 的 Android 项目中,我使用 Amplify 将图像上传到 AWS S3。文件使用 transferUtility
上传val transferUtility = TransferUtility.builder()
.context(applicationContext)
.awsConfiguration(AWSMobileClient.getInstance().configuration)
.s3Client(AmazonS3Client(AWSMobileClient.getInstance()))
.build()
val file = File("path_to/file")
val key = "public/propic/" + user.id+".jpg"
val uploadObserver = transferUtility.upload(key,file)
uploadObserver.setTransferListener(object : TransferListener {
override fun onStateChanged(id: Int, state: TransferState) {
if (TransferState.COMPLETED === state) {
Toast.makeText(this@UploadActivity, "File Uploaded", Toast.LENGTH_LONG).show()
}
}
}
文件正在完美上传到 AWS S3。上传文件后,我需要获取上传文件的对象 URL。这样我就可以使用对象 URL 从 S3 加载 ImageView 。
最佳答案
直接回答这个问题,S3 Bucket中对象的URL是
https://BUCKET-NAME.s3.amazonaws.com/path/to/file
请注意,要以这种方式访问它,该对象必须是公开可用的。
关于android - 如何使用 Amplify 从 Android 获取 AWS S3 中的对象 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57988466/