Object MultipartTransfer
-
- All Implemented Interfaces:
public class MultipartTransferBounded streaming upload over the MultipartUpload lifecycle (HEL-236 guarantees 1+3). The input stream is read ONCE, sequentially, into part buffers of Options.partSizeBytes; at most Options.concurrency parts are in flight, so peak memory is
concurrency * partSizeBytes— stated, bounded, and asserted by test, never "whatever the SDK buffers".Failure/cancellation ABORTS the multipart upload (guarantee 3): no invisible billed part garbage survives an exception. Content that fits in a single part never starts a multipart upload at all — it degrades to a plain ObjectStore.put (each buffered part is repeatable, so both paths are retry-safe).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public final classMultipartTransfer.Options
-
Field Summary
Fields Modifier and Type Field Description public final static MultipartTransferINSTANCE
-
Method Summary
Modifier and Type Method Description final static PutResultupload(ObjectStore store, ObjectKey key, InputStream input, MultipartTransfer.Options options)Stream input (length may be unknown) into key. -
-
Method Detail
-
upload
final static PutResult upload(ObjectStore store, ObjectKey key, InputStream input, MultipartTransfer.Options options)
Stream input (length may be unknown) into key. Requires StorageCapability.MULTIPART_UPLOAD only when the content actually exceeds one part. The caller owns closing input.
-
-
-
-