Вы можете использовать библиотеку под названием S3UploadService.Сначала вам нужно будет преобразовать ваше растровое изображение в файл.Для этого взгляните на этот пост:
Преобразовать растровое изображение в файл
S3UploadService - это библиотека, которая обрабатывает загрузку в Amazon S3.Он предоставляет сервис под названием S3UploadService со статическим методом, в котором вы предоставляете контекст (чтобы статический метод мог запустить сервис), файлом, логическим значением, указывающим, следует ли удалять указанный файл после завершения загрузки, и при желании вы можете установить обратный вызов (некак обычный обратный вызов. Способ работы описан в файле README.
Это IntentService, поэтому загрузка будет выполняться, даже если пользователь убивает приложение во время загрузки (поскольку его жизненный цикл не привязан кжизненный цикл приложения).
Чтобы использовать эту библиотеку, вам просто нужно объявить службу в своем манифесте:
<application
...>
...
<service
android:name="com.onecode.s3.service.S3UploadService"
android:exported="false" />
</application>
Затем вы создаете экземпляр S3BucketData и делаете вызовto S3UploadService.upload ():
S3Credentials s3Credentials = new S3Credentials(accessKey, secretKey, sessionToken);
S3BucketData s3BucketData = new S3BucketData.Builder()
.setCredentials(s3Credentials)
.setBucket(bucket)
.setKey(key)
.setRegion(region)
.build();
S3UploadService.upload(getActivity(), s3BucketData, file, null);
Чтобы добавить эту библиотеку, вам нужно добавить репозиторий JitPack в корневой каталог build.gradle:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
, а затем добавить зависимость:
dependencies {
compile 'com.github.OneCodeLabs:S3UploadService:1.0.0@aar'
}
Вот ссылка на репо: https://github.com/OneCodeLabs/S3UploadService
Этот ответ немного запоздал, но я надеюсь, что он кому-нибудь поможет