# gst-plugin-s3 This is a [GStreamer](https://gstreamer.freedesktop.org/) plugin to interact with the [Amazon Simple Storage Service (S3)](https://aws.amazon.com/s3/). Currently, a simple source element exists. The eventual plan is to also add a sink, to allow writing out objects directly to S3. ## AWS Credentials AWS credentials are picked up using the mechanism that [rusoto's ChainProvider](http://rusoto.github.io/rusoto/rusoto/struct.ChainProvider.html) uses. At the moment, that is: 1. Environment variables: `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` 2. AWS credentials file. Usually located at ~/.aws/credentials. 3. IAM instance profile. Will only work if running on an EC2 instance with an instance profile/role. An example credentials file might look like: ```ini [default] aws_access_key_id = ... aws_secret_access_key = ... ``` ## s3src Reads from a given S3 (region, bucket, object, version?) tuple. The version may be omitted, in which case the default behaviour of fetching the latest version applies. ``` $ gst-launch-1.0 \ s3src uri=s3://ap-south-1/my-bucket/my-object-key/which-can-have-slashes?version=my-optional-version ! filesink name=my-object.out ``` ## s3sink Writes data to a specified S3 bucket. The `region` parameter is optional, and if not specified, the default parameter will be used (from `.aws/config` file). ``` $ gst-launch-1.0 \ videotestsrc ! \ theoraenc ! \ oggmux ! \ s3sink bucket=example-bucket key=my/file.ogv region=us-west-1 ```