Install the AWS Labs File Mover Express CLI in GitHub Actions, add it to PATH, and optionally configure an S3 transfer profile. The action verifies the download against its SHA-256 digest and, on Windows and macOS, Amazon's code signature. It doesn't perform transfers itself: your workflow runs the CLI.
This action is built and maintained by lowlysre. It's an independent project, not affiliated with or endorsed by AWS.
This example assumes the repository can use GitHub OIDC to assume an AWS role and that dist contains the files to upload. See the first-upload tutorial to configure the OIDC trust policy and bucket permissions.
permissions:
contents: read
id-token: write
steps:
- uses: aws-actions/configure-aws-credentials@v6
with:
role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
aws-region: us-east-1
- uses: lowlysre/setup-filemoverexpress@v1
with:
bucket: my-build-bucket
validate-credentials: true
- name: Upload build output
shell: bash
run: |
filemoverexpress upload default ./dist 2>&1 | tee fme.log
if grep -qE $'^(\033\\[[0-9;]*m)*(ERROR|FATAL)' fme.log; then
echo "::error::File Mover Express reported transfer errors"
exit 1
fiThe setup action takes the region and credentials from the AWS environment configured by the preceding step. Pin third-party actions to full commit SHAs in production workflows.
File Mover Express exits 0 when individual files fail to transfer. The upload step checks the log and fails on ERROR or FATAL lines. See fail on transfer errors for other checks.
File Mover Express copies files between the runner and S3. The AWS CLI and s5cmd cover jobs it doesn't.
| Need | File Mover Express | AWS CLI or s5cmd |
|---|---|---|
| Upload or download a directory or prefix | β | β |
Mirror a directory and delete what's gone (sync --delete) |
β | β |
Filter by regex or file age (--filter, --max-age) |
β | Glob include and exclude only |
| Store XXH3, XXHash, or MD5 checksums | β | β |
| Copy between buckets, manage objects, presign URLs | β | β |
| Tune parallelism (files in flight, chunk threads, chunk size) | β
Flags and --auto-tuning |
Worker count or max_concurrent_requests |
| Fail the step on a failed transfer | Needs a log check | β Non-zero exit |
You can use both in one job. See Choosing a transfer tool for when to use which, and Sync or delete for mirror commands.
Full docs are at lowlysre.github.io/setup-filemoverexpress.
- Your first upload
- Inputs and outputs
- Authenticate with configure-aws-credentials
- Upload and download faster
- Security model
Copyright 2026 lowlysre. This action is licensed under the Apache License 2.0; see NOTICE for attribution. It downloads and runs the File Mover Express CLI, which has its own Apache-2.0 license. Third-party code bundled into the action is listed in dist/THIRD_PARTY_LICENSES.txt.
AWS and Amazon S3 are trademarks of Amazon.com, Inc. or its affiliates. This project is independent and not affiliated with or endorsed by AWS.
