Copies sourcePath on source to destPath on sink. When sourcePath
is a folder, recurses: uses a folder-aware directCopy when the source
declares supportsRecursiveDirectTransfer, otherwise lists the folder and
transfers each entry (bounded by options.concurrencyLimiter), following
cp -r target semantics (see resolveRecursiveDestRoot).
For a single file: uses source.directCopy when
source.canDirectTransfer?.(sink) reports eligibility. Otherwise falls
back to multipart transfer (when both sides support it, size crosses
options.multipartThreshold, and part-size negotiation succeeds) or plain
streaming - retried per options.retry on TransientIOError.
Copies
sourcePathonsourcetodestPathonsink. WhensourcePathis a folder, recurses: uses a folder-awaredirectCopywhen the source declaressupportsRecursiveDirectTransfer, otherwise lists the folder and transfers each entry (bounded byoptions.concurrencyLimiter), followingcp -rtarget semantics (see resolveRecursiveDestRoot).For a single file: uses
source.directCopywhensource.canDirectTransfer?.(sink)reports eligibility. Otherwise falls back to multipart transfer (when both sides support it, size crossesoptions.multipartThreshold, and part-size negotiation succeeds) or plain streaming - retried peroptions.retryonTransientIOError.