Skip to main content

move_object

Function move_object 

Source
pub async fn move_object(
    client: &Client,
    src_bucket: &str,
    src_key: &str,
    dest_bucket: &str,
    dest_key: &str,
    options: &CopyOptions,
) -> Result<MoveResult, AppError>
Expand description

Move src_bucket/src_key to dest_bucket/dest_key.

Implemented as copy then delete. If the copy succeeds but the delete fails, returns AppError::Internal with a notice that the copy already landed and cleanup of the source is needed.

§Atomicity

S3 does not provide native atomic rename. The copy + delete sequence is atomic from the caller’s perspective only in the happy path: the source is visible until the delete completes. Callers that require strict isolation must hold a lock on the source prefix.