---
name: "Rex::Commands::Upload"
section: "3pm"
platform: "linux"
package: "rex"
version: "1.16.0-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Rex::Commands::Upload"
---

# Rex::Commands::Upload(3pm)

Upload a local file to a remote server

## NAME

Rex::Commands::Upload - Upload a local file to a remote server

## DESCRIPTION

With this module you can upload a local file via sftp to a remote host.

## SYNOPSIS

```
 task "upload", "remoteserver", sub {
   upload "localfile", "/remote/file";
 };
```

## EXPORTED FUNCTIONS

### upload($local, $remote)

Perform an upload. If `$remote` is a directory the file will be uploaded to that directory.

```
 task "upload", "remoteserver", sub {
   upload "localfile", "/path";
 };
```

This function supports the following hooks:

- before

  This gets executed before anything is done. All original parameters are passed to it.

  The return value of this hook overwrites the original parameters of the function-call.

- before\_change

  This gets executed right before the new file is written. The local file name, and the remote file name are passed as parameters.

- after\_change

  This gets executed right after the file was written. On top of the local file name, and the remote file name, any returned results are passed as parameters.

- after

  This gets executed right before the `upload()` function returns. All original parameters, and any results returned are passed to it.
