--- layout: "docs" --- # File Provisioner Type: `file` The file provisioner uploads files to machines built by Packer. The recommended usage of the file provisioner is to use it to upload files, and then use [shell provisioner](/docs/provisioners/shell.html) to move them to the proper place, set permissions, etc. ## Basic Example
{
"type": "file",
"source": "app.tar.gz",
"destination": "/tmp/app.tar.gz"
}
## Configuration Reference
The available configuration options are listed below. All elements are required.
* `source` (string) - The path to a local file to upload to the machine. The
path can be absolute or relative. If it is relative, it is relative to the
working directory when Packer is executed.
* `destination` (string) - The path where the file will be uploaded to in the
machine. This value must be a writable location and any parent directories
must already exist.