2013-09-26 2 views
3

Я пытаюсь загрузить файлы на Amazon S3, ничего особенного. Мне удалось выполнить фактическую загрузку, и файл успешно загружен. Единственный вопрос, который осталось в том, что, как отменить или прервать putobject просьбой обОтмена Amazon S3 Положить объект Request

ответ

1

Я столкнулся с той же проблемой, и в конечном итоге с помощью FileInputStream вместо File для PutRequest и силы закрыть поток, чтобы отменить загрузку.

Это отменяет запрос на размещение, потому что он не может попробовать снова, потому что ему не хватает ссылки на файл.

InputStream inputStream = new FileInputStream(file); 
ObjectMetadata metadata = new ObjectMetadata(); 
metadata.setContentLength(file.length()); 
PutObjectRequest request = new PutObjectRequest(bucket, key, inputStream, metadata); 

Для отмены загрузки

inputStream.close(); 

К сожалению, это заполняет LogCat с ClientProtocolException трассировки стека.

+0

но он дает IOException Попытка закрыть inputStream. –

+0

Это ожидается, так как вы принудительно закрываете поток, поэтому поймаете исключение и проигнорируете его. Вы можете установить логический флаг, чтобы отличать его от других исключений. – dzeikei

+0

вы можете представить какой-либо пример, потому что, когда я сильно закрываю входной поток, он некоторое время будет зависать. –

Смежные вопросы