Presigned GET URL for key, valid for expiresIn seconds.
Existence is confirmed with a HEAD before signing. S3 signs a URL for any key, present or not, so signing blind hands the operator a link that looks good and lands on an S3 XML error page whenever the recorded path and the stored object disagree.
Relocate the object at sourceKey to destinationKey. S3 has no rename,
so this is a copy followed by a delete and it is not atomic.
Re-runnable on purpose. An ACH file's key is derived from its status, so a
relocation that died partway has to be finishable by running the same
operation again — a source that is already gone with the object sitting at
the destination is a completed move, not a failure, and resolves as
ALREADY_AT_DESTINATION.
An object at neither key throws. That is the one state no retry repairs: the record would advertise a key nothing is stored under, so the caller must not write a status on top of it.
Read the object at
key.An absent object comes back as
S3_OBJECT_NOT_FOUND; a read S3 refused or could not serve comes back asS3_READ_FAILED. Callers get to tell those apart — the previousBuffer | nullcould not, so a denied permission and a wrong bucket both read as "missing".