Prepare the destination
Choose a path that explains the object's purpose and decide whether each run should create a unique object or replace a known one. Unique paths preserve a history of outputs; a reused path gives later steps a stable location. Make that choice explicit to prevent unexpected overwrites.
Send text as text and binary data in the encoded form expected by the save step. Set a content type when downstream readers need it. Keep credentials in the configured connection, not in the payload or object name.
Verify and reuse the saved object
A successful save returns object details such as its key, size, and content type. Pass the key to a later read or processing step; saving does not make an object public. Storage permissions still determine who can retrieve it.
Test with a small sample. Confirm the object appears at the intended path, opens with the expected content, and behaves correctly on a second run. If a later step fails, use the returned key and a sanitized error to check whether saving succeeded before rerunning everything.