Загрузить файл непосредственно в папку в ведре с помощью Android SDK

Я использую следующий код для загрузки файла в корзину S3:

//upload code start
AWSCredentials credential = new BasicAWSCredentials(AppConstants.AWS_ACCESS_KEY_ID, AppConstants.AWS_SECRET_ACCESS_ID);
TransferManager manager = new TransferManager(credential);
// Transfer a file to an S3 bucket.
Upload upload = manager.upload("bucket_name", AppConstants.AWS_ACCESS_KEY_ID, file);
while (!upload.isDone()) {
    Thread.sleep(200);
}
//upload code end

Я хочу поместить это в каталог с именем "android_uploads" внутри моего сегмента, но Transfer Manager загружает все файлы в корень сегмента.

Есть идеи, как мне этого добиться?

3 ответа

Решение

Ваш звонок на upload() неверный. Это должно быть как:

Upload upload = manager.upload("bucket_name", "android_uploads/" + fileName, file);
Upload upload = manager.upload("bucket_name","filePath where to be stored in bucket sub folder or directly to the bucket", file);

Вы можете загружать файлы любого типа в Amazon s3 с помощью простого кода следующим образом:

PutObjectRequest por = new PutObjectRequest(
                                BUCKET_NAME, Key,
                                file);

por.setCannedAcl(CannedAccessControlList.PublicReadWrite);
                        s3Client.putObject(por);

я пробовал этот код для загрузки изображений и текстовых файлов.

Другие вопросы по тегам