nx1x/Cloudflare R2 Backup

Upload, verify, list, and prune backups in Cloudflare R2 from GitHub Actions. Zero telemetry, AWS CLI under the hood.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
operationOperation to run: upload | verify | list | pruneyes
account-idCloudflare account ID. Used to derive the R2 endpoint unless endpoint-url is set.yes
access-key-idR2 API access key IDyes
secret-access-keyR2 API secret access keyyes
bucketR2 bucket nameyes
prefixPath prefix inside the bucket (e.g. "daily-backups/"). Used by upload, list, and prune.no""
fileLocal file path. Required for upload. Used as a download target for verify.no""
object-keyExplicit object key. For upload, defaults to prefix + basename(file). For verify, required.no""
retention-daysDelete objects under prefix older than N days. Empty disables age-based prune.no""
retention-countKeep only the newest N objects under prefix. Empty disables count-based prune.no""
verify-modeIntegrity check (verify op): tar | zip | sha256.no""
verify-checksumExpected sha256 hex digest (required when verify-mode=sha256).no""
max-keysMaximum number of objects to return (list op).no""
endpoint-urlOverride the R2 endpoint URL. Default: https://<account-id>.r2.cloudflarestorage.comno""
namedescription
object-keyFull object key written to or verified in R2.
sizeSize in bytes of the uploaded or verified object.
pruned-countNumber of objects deleted by retention.
verifiedtrue if integrity check passed (verify op).
objectsJSON array of objects under prefix (list op).
countNumber of objects returned by list op.
total-sizeTotal size in bytes of objects returned by list op.