S3Manager - aws files uploading library
This library is created to make files uploading and downloading on Aws easier
Features
- Easy to use
- Single/multiple file upload on Aws s3
How to Add
Project level gradle file
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
App level gradle file
dependencies {
implementation 'com.github.rkahir21:S3Manager:v1.0'
}
Deployment
How to use this amazing lib and save your time
private val s3Manager by lazy {
S3Manager(this)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//You can also check if credentials set or not
if (s3Manager.isCredentialsAvailable()) {
//Now you can used
//for single file
uploadFile()
//for multiple files
uploadFiles()
} else {
//You need to call setCredentials()
setCredentials()
}
}
setCredentials
private fun setCredentials() {
s3Manager.setCredentials(
S3Config(
"YOUR_ACCESS_KEY_HERE",
"YOUR_SECRET_KEY_HERE",
"YOUR_REGION_HERE",
"YOUR_BUCKET_HERE",
)
)
}
Upload files
private fun uploadFile() {
s3Manager.uploadFile(
file = File("demo.jpg"), // File need to upload
filename = "uploadFileName", //if not pass argument then it has by default random name
directory = "customer/user/profile", // full path of upload directory
s3SingleTransferListener = object :
S3SingleTransferListener { //file uploading status listener
override fun onCompleted(fileName: String) {
//Do something on file uploading successfully
}
override fun onError(id: Int, exception: Exception?) {
//Do something on got any error file uploading
}
override fun onProgress(progress: Int) {
//Do something on file uploading progress
}
}
)
}
private fun uploadFiles() {
s3Manager.uploadFiles(
files = arrayListOf(File("demo.jpg")), // array of file need to upload
directory = "customer/user/profile", // full path of upload directory
s3MultipleTransferListener = object :
S3MultipleTransferListener { //file uploading status listener
override fun onCompleted(listOfName: ArrayList<String>) {
//Do something on files uploading successfully
}
override fun onError(id: Int, exception: Exception?) {
//Do something on got any error file uploading
}
override fun onProgress(progress: Int) {
//Do something on file uploading progress
}
override fun filesUploadedCount(totalFiles: Int, pendingFile: Int) {
//Do something on file uploading count
}
}
)
}
Contributing
Contributions are always welcome!
See contributing.md
for ways to get started.
Please adhere to this project's code of conduct
.