gst-plugins-rs/net/rusoto
Sanchayan Maity 099a3f2114 rusoto: s3sink: Support aborting or completing multipart upload on error
A multipart upload should either be completed or aborted on error. In
the current state of things, a multipart upload would neither be
completed nor aborted, putting the onus on an external entity to take
care of finishing incomplete uploads or relying on a sane bucket
life cycle policy configured to abort incomplete multipart uploads.

An incomplete multipart upload still contributes to the storage costs as
long as it exists.

We introduce a property here to allow the user to select either aborting
or completing multipart uploads on error. Aborting the upload causes
whole of data to be discarded and the same upload ID is not usable for
uploading more parts to the same.

Completing an incomplete multipart upload can be useful in situations
like having a streamable MP4 where one might want to complete the upload
and have part of the data which was uploaded be preserved.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/618>
2021-12-07 18:29:52 +05:30
..
src rusoto: s3sink: Support aborting or completing multipart upload on error 2021-12-07 18:29:52 +05:30
build.rs fix-getters-calls 0.3.0 pass 2021-04-20 18:19:58 +02:00
Cargo.toml Update to rav1e 0.5 and async-tungstenite 0.16 2021-11-17 10:10:00 +02:00
LICENSE-APACHE Add LICENSE files to each individual crate 2020-07-10 13:06:28 +03:00
LICENSE-MIT Add LICENSE files to each individual crate 2020-07-10 13:06:28 +03:00
README.md rusoto: s3sink: Implement support for GstUriHandler interface 2021-05-01 13:55:49 +05:30

gst-plugin-s3

This is a GStreamer plugin to interact with Amazon Web Services. We currently have elements to interact with S3 and Transcribe.

AWS Credentials

AWS credentials are picked up using the mechanism that rusoto's ChainProvider 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:

[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 (region, bucket, object, version?) tuple. The version may be omitted.

$ gst-launch-1.0 \
    videotestsrc ! \
    theoraenc ! \
    oggmux ! \
    s3sink uri=s3://us-west-1/example-bucket/my/file.ogv?version=my-optional-version

awstranscriber

Transcribes audio to text.