{"id":19646607,"url":"https://github.com/amzn/amazon-s3-gst-plugin","last_synced_at":"2025-04-28T15:30:50.627Z","repository":{"id":37744861,"uuid":"186874528","full_name":"amzn/amazon-s3-gst-plugin","owner":"amzn","description":"A collection of Amazon S3 GStreamer elements.","archived":false,"fork":false,"pushed_at":"2024-04-11T08:07:05.000Z","size":52,"stargazers_count":39,"open_issues_count":0,"forks_count":21,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-04-11T15:44:03.416Z","etag":null,"topics":["aws","aws-s3","gst","gstreamer","gstreamer-plugins","s3"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amzn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2019-05-15T17:33:53.000Z","updated_at":"2024-04-11T15:44:03.416Z","dependencies_parsed_at":"2023-10-04T20:50:00.617Z","dependency_job_id":"ff7d3188-572c-46dc-841c-fa8dd6a1ed81","html_url":"https://github.com/amzn/amazon-s3-gst-plugin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amzn%2Famazon-s3-gst-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amzn%2Famazon-s3-gst-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amzn%2Famazon-s3-gst-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amzn%2Famazon-s3-gst-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amzn","download_url":"https://codeload.github.com/amzn/amazon-s3-gst-plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224123014,"owners_count":17259541,"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":["aws","aws-s3","gst","gstreamer","gstreamer-plugins","s3"],"created_at":"2024-11-11T14:39:27.962Z","updated_at":"2025-04-28T15:30:50.620Z","avatar_url":"https://github.com/amzn.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Build Status](https://github.com/amzn/amazon-s3-gst-plugin/actions/workflows/c-cpp.yml/badge.svg)\n\n## Amazon S3 Gst Plugin\n\nA collection of [GStreamer](https://gstreamer.freedesktop.org/) elements to interact\nwith the [Amazon Simple Storage Service (S3)](https://aws.amazon.com/s3/).\n\n## Important\nAmazon S3 Gst Plugin is no longer being developed. \n\nFor your future development needs, we recommend utilising the officially maintained AWS plugins for GStreamer. These can be found in the GStreamer Rust-based plugins repository at:\n\nhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/tree/main/net/aws\n\nThese plugins are actively maintained and offer robust support for AWS integration with GStreamer.\n\n## Getting started\n### Setting up dependencies\nFollowing dependencies are required to build the project:\n * [GStreamer](https://gstreamer.freedesktop.org/): [core](https://gitlab.freedesktop.org/gstreamer/gstreamer), [base plugins](https://gitlab.freedesktop.org/gstreamer/gst-plugins-base)  \n see the [GStreamer's documentation](https://gstreamer.freedesktop.org/documentation/installing/index.html?gi-language=c) for installation instructions\n * [Meson build system](https://mesonbuild.com/)\n * [AWS SDK for C++](https://aws.amazon.com/sdk-for-cpp/)\n\n### Building the project\n```bash\n$ meson build\n$ cd build\n$ ninja\n$ sudo ninja install\n```\nAfter executing commands above, the plugin (`libgsts3elements.so`) should be installed in the default GStreamer's plugin path. It can also be found in the build directory, and used by specifying the plugin path:\n```bash \n$ GST_PLUGIN_PATH=src gst-inspect-1.0 s3sink\n```\n\n## Elements\n* s3sink - streams the multimedia to a specified bucket.\n\n## AWS Credentials\nBy default all the elements use the [default credentials provider chain](https://sdk.amazonaws.com/cpp/api/0.14.3/class_aws_1_1_auth_1_1_default_a_w_s_credentials_provider_chain.html), which means, that credentials are read from the following sources:\n\n1. Environment variables: `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`\n1. AWS credentials file. Usually located at ~/.aws/credentials.\n1. For EC2 instance, IAM instance profile.\n\nSome of the elements have `credentials` property of `GstAWSCredentials` type, which is a wrapper for an `Aws::Auth::AWSCredentialsProvider` class.\n\n### Defining GstAWSCredentials as a string\nThe `GstAWSCredentials` object can be deserialized from a string, which makes using the property in gst-launch command possible. The string must be specified in the following format\n```\nproperty1=value1[|property2=value2[|property3=value3[|...]]]\n```\nCurrently the deserializer accepts following properties:\n\n* `access-key-id`, e.g. `AKIAIOSFODNN7EXAMPLE`\n* `secret-access-key`, e.g. `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`\n* `session-token`\n* `iam-role`, e.g. `arn:aws:iam::123456789012:role/s3access`\n\nAll the properties are optional, however, be aware of the rules:\n\n* `access-key-id` cannot exist without `secret-access-key` (and vice versa)\n* if `session-token` specified, both `access-key-id` and `secret-access-key` must be present\n* if `iam-role` is specified, it will use default credentials provider to assume the role, unless `access-key-id` and `secret-access-key` are present - in that case, these credentials are used to assume the role.\n\n## License Summary\nThis code is made available under the LGPLv2.1 license.\n(See [LICENSE](LICENSE) file)\n\n## Examples\n* Streaming camera capture to an S3 bucket:\n```\n$ gst-launch-1.0 -e v4l2src num-buffers=300 device=/dev/video0 ! x264enc ! matroskamux ! s3sink bucket=my-personal-videos key=recording.mkv\n```\n\n## Contributing\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famzn%2Famazon-s3-gst-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famzn%2Famazon-s3-gst-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famzn%2Famazon-s3-gst-plugin/lists"}