This is the fork version with concurrent multipart upload support. See: index.ts#L130
GitHub Action to upload files to a Cloudflare R2 bucket, built on top of @aws-sdk/client-s3 in TypeScript.
Combination of these two repos: S3 Upload Action and Cloudflare R2 Upload.
- uses: ryand56/r2-upload-action@latest
with:
r2-account-id: ${{ secrets.R2_ACCOUNT_ID }}
r2-access-key-id: ${{ secrets.R2_ACCESS_KEY_ID }}
r2-secret-access-key: ${{ secrets.R2_SECRET_ACCESS_KEY }}
r2-bucket: ${{ secrets.R2_BUCKET }}
source-dir: src
destination-dir: ./
In this example, source-dir
is stored in the root of the bucket.
Change destination-dir
input to specify the location of where the directory will be uploaded.
- uses: ryand56/r2-upload-action@latest # Can be any release
with:
r2-account-id: ${{ secrets.R2_ACCOUNT_ID }}
r2-access-key-id: ${{ secrets.R2_ACCESS_KEY_ID }}
r2-secret-access-key: ${{ secrets.R2_SECRET_ACCESS_KEY }}
r2-bucket: ${{ secrets.R2_BUCKET }}
source-dir: src
destination-dir: artifacts # Can be anything as long as it is an actual path
output-file-url: 'true' # defaults to true
See the latest action.yml for every input and output or take a look below.
Name | Description | Default |
---|---|---|
r2-account-id |
(Required) Your Cloudflare account ID. | N/A |
r2-access-key-id |
(Required) Your Cloudflare R2 bucket access key ID. | N/A |
r2-secret-access-key |
(Required) Your Cloudflare R2 bucket secret access key. | N/A |
r2-bucket |
(Required) Your Cloudflare R2 bucket name. | N/A |
source-dir |
(Required) The directory to upload to the Cloudflare R2 bucket. | N/A |
destination-dir |
(Optional) The destination to upload the directory to in the Cloudflare R2 bucket. | Empty string |
Name | Description |
---|---|
result |
Result of this action. Either success or failure is set. |
file-urls |
The URLs of the uploaded files in the directory. |
See the contributing guide for more detail on how to implement something into the project.