{"id":13908120,"url":"https://github.com/Noelware/s3-action","last_synced_at":"2025-07-18T06:32:54.067Z","repository":{"id":37920110,"uuid":"373313377","full_name":"Noelware/s3-action","owner":"Noelware","description":"☕ Simple GitHub action to upload contents from a GitHub repository to a S3 bucket, supports AWS and Wasabi","archived":false,"fork":false,"pushed_at":"2025-07-16T21:04:00.000Z","size":13762,"stargazers_count":24,"open_issues_count":2,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-17T05:32:54.870Z","etag":null,"topics":["action","actions","aws","aws-s3","github","github-action","github-actions","node","nodejs","npm","s3","wasabi"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Noelware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["auguwu","Noelware"],"custom":["https://paypal.me/auguwu","https://noelware.org"]}},"created_at":"2021-06-02T21:59:39.000Z","updated_at":"2025-07-16T21:04:03.000Z","dependencies_parsed_at":"2023-09-27T12:35:46.604Z","dependency_job_id":"39d265ea-88aa-4ec5-9e24-92359c40c738","html_url":"https://github.com/Noelware/s3-action","commit_stats":{"total_commits":386,"total_committers":3,"mean_commits":"128.66666666666666","dds":0.4689119170984456,"last_synced_commit":"d2f19c9681834977fee9417cc1c795e1ca8422ca"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/Noelware/s3-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noelware%2Fs3-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noelware%2Fs3-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noelware%2Fs3-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noelware%2Fs3-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Noelware","download_url":"https://codeload.github.com/Noelware/s3-action/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noelware%2Fs3-action/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265710668,"owners_count":23815397,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["action","actions","aws","aws-s3","github","github-action","github-actions","node","nodejs","npm","s3","wasabi"],"created_at":"2024-08-06T23:02:28.869Z","updated_at":"2025-07-18T06:32:53.647Z","avatar_url":"https://github.com/Noelware.png","language":"TypeScript","readme":"# ☕ Upload to Amazon S3 | GitHub Action\n\n\u003e _Simple and fast GitHub Action to upload objects to Amazon S3 easily._\n\u003e\n\u003e \u003ckbd\u003e\u003ca href=\"https://github.com/Noelware/s3-action/releases/2.3.0\"\u003ev2.3.0\u003c/a\u003e\u003c/kbd\u003e\n\n**s3-action** is a simple and easy GitHub Action to upload artifacts to any compatible Amazon S3 instances. Noelware uses Amazon S3 to host our artifacts, images and more with [:feather: Hazel](https://noelware.org/hazel).\n\n## Usage\n\n```yaml\nsteps:\n    - name: Upload to Amazon S3\n      uses: Noelware/s3-action@2 # this can be `master` or a tagged release\n      with:\n          directories: |\n              ./some/directory,\n              ./some/other/directory\n\n          access-key-id: { access key id here }\n          path-format: '/$(tag)'\n          secret-key: { some secret key here }\n          endpoint: s3.amazonaws.com\n          prefix: /artifacts\n          region: us-east-1\n          bucket: { some bucket name here }\n```\n\n## Inputs\n\n### directories: `List[String]` (Required: No, Default: `[]`)\n\nThe **directories** input indicates which directories should be uploaded to Amazon S3. The action will recursively get all the files in said directories and upload them via the [Bulk Upload Endpoint](#), if objects are more than ~75MB, the object will use the [Multipart Upload Endpoint](#).\n\n### files: `List[String]` (Required: No, Default: `[]`)\n\nThe **files** inputs indicicates which files should be uploaded to Amazon S3. You can use the pattern glob syntax to check for specific files with the `.js` extension and more. If objects are more than ~75MB, the object will use the [Multipart Upload Endpoint](#).\n\n### access-key-id: `String` (Required: Yes)\n\n**access-key-id** is the access key ID to use when authenticating with Amazon S3. This value shouldn't be hardcoded in your action and represented a secret, for example:\n\n```yaml\naccess-key-id: ${{ secrets.S3_ACCESS_KEY_ID }}\n```\n\n### path-format: `String` (Required: No, Default: `null`)\n\n**path-format** is a special field, it handles how the path should be formatted when uploading to Amazon S3. The library provides with multiple \"keys\" encapsulated in `$()` to use.\n\n- `$(file)`: The file name that is being uploaded, returns as the relative path.\n- `$(prefix)`: The prefix that is configured to use, i.e, `/artifacts`.\n- `$(branch)`: Returns the current branch the action is being ran in, examples: `master`, `main`, `trunk`, etc.\n- `$(tag)`: Returns the current release tag if it can be found, it will not attempt to put the actual release tag if the action isn't running with the `release` event.\n- `$(os)`: Returns the operating system name.\n- `$(arch)`: Returns the host CPU architecture name.\n\n#### Examples\n\n- `$(prefix)/$(branch)/$(file)` -\u003e /artifacts/trunk/charted/server/v0.1.tar.gz\n- `$(branch)/$(file)` -\u003e /trunk/charted/server/v0.1.tar.gz\n- `$(prefix)/$(file)` (default) -\u003e /artifacts/charted/server/v0.1.tar.gz\n\n### endpoint: `URL` (Required: No, Default: `https://s3.amazonaws.com`)\n\nThe endpoint URL to reach when connecting to Amazon S3. By default, it will use the official S3 server (`https://s3.amazonaws.com`).\n\n#### Recepies\n\n##### Wasabi\n\n```yaml\nendpoint: https://s3.wasabisys.com\n```\n\n##### MinIO\n\n```yaml\nendpoint: https://\u003chost where your MinIO server is\u003e\nenforce-path-access-style: true\n```\n\n### prefix: `String` (Required: No, Default: `/`)\n\nThe prefix to use when uploading artifacts. This can be useful when using the [path format syntax](#path-format-string-required-no). This must start with a `/` or a validation error will pop up when running the action.\n\n### region: `String` (Required: No, Default: `us-east-1`)\n\nThe region to hit when connecting to Amazon S3. By default, it will connect to the **US East 1** servers.\n\n### bucket: `String` (Required: Yes)\n\nThe bucket to put the artifacts in.\n\n### bucket-acl: `String` (Required: No, Default: `public-read`)\n\nThe access control level for the [bucket](#bucket-string-required-yes) when the bucket doesn't exist, since the action will attempt to create it.\n\n### object-acl: `String` (Required: No, Default: `public-read`)\n\nThe access control level for objects when uploading it to Amazon S3.\n\n### exclude: `List[String]` (Required: No, Default: `[]`)\n\nThe list of excluded files or directories to exclude\n\n### enforce-path-access-style: `Boolean` (Required: No, Default: `false`)\n\nIf the path access style should be enforced or not. Recommended for Minio instances.\n\n## License\n\n**s3-action** is released under the **MIT License** with love, by [Noelware](https://noelware.org) :3\n","funding_links":["https://github.com/sponsors/auguwu","https://github.com/sponsors/Noelware","https://paypal.me/auguwu","https://noelware.org"],"categories":["HarmonyOS"],"sub_categories":["Windows Manager"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNoelware%2Fs3-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNoelware%2Fs3-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNoelware%2Fs3-action/lists"}