From 723b93171a8b7dc161f0478355e46ee11d5dffd9 Mon Sep 17 00:00:00 2001 From: suhuade Date: Wed, 4 Mar 2020 11:52:58 +0800 Subject: [PATCH] Bug Fix: REQUEST_CONTENT_LENGTH_EVENT can not be invoked if InputStream used as a parameter in construction of class PutObjectRequest --- .../java/com/aliyun/oss/internal/OSSObjectOperation.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/com/aliyun/oss/internal/OSSObjectOperation.java b/src/main/java/com/aliyun/oss/internal/OSSObjectOperation.java index d0e844df..2ab1e254 100644 --- a/src/main/java/com/aliyun/oss/internal/OSSObjectOperation.java +++ b/src/main/java/com/aliyun/oss/internal/OSSObjectOperation.java @@ -1087,6 +1087,13 @@ private ResponseType writeO } else { assertTrue(originalInputStream != null, "Please specify input stream or file to upload"); + try { + metadata.setContentLength((long)originalInputStream.available()); + } catch (IOException ex) { + getLog().info("Cannot read length from input stream: ", ex); + throw new ClientException("Cannot read length from input stream: ", ex); + } + if (metadata.getContentType() == null) { metadata.setContentType(Mimetypes.getInstance().getMimetype(key)); }