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)); }