Table of Contents

Class AWSS3SinkBlock

Namespace
VisioForge.Core.MediaBlocks.AWS
Assembly
VisioForge.Core.dll

AWS S3 sink block for direct media streaming to Amazon S3 cloud storage. This block enables real-time upload of media data to AWS S3 buckets, supporting live streaming, recording, and archival workflows. Features include multipart uploads for large files, automatic retry on network failures, configurable buffer sizes, and support for various S3 storage classes. Essential for cloud-based media workflows, content distribution, backup solutions, and scalable media storage architectures. Requires AWS credentials and appropriate S3 bucket permissions. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals. Implements the IDisposable.

public class AWSS3SinkBlock : MediaBlock, IMediaBlock, IDisposable, IMediaBlockInternals

Inheritance

Implements

Inherited Members

Extension Methods

Constructors

AWSS3SinkBlock(AWSS3SinkSettings)

Initializes a new instance of the VisioForge.Core.MediaBlocks.AWS.AWSS3SinkBlock class with specified AWS S3 configuration.

public AWSS3SinkBlock(AWSS3SinkSettings settings)

Parameters

settings AWSS3SinkSettings

The AWS S3 sink configuration settings including bucket and credentials.

Properties

Input

Gets the input.

public override MediaBlockPad Input { get; }

Property Value

MediaBlockPad

Inputs

Gets the inputs.

public override MediaBlockPad[] Inputs { get; }

Property Value

MediaBlockPad[]

Output

Gets the output.

public override MediaBlockPad Output { get; }

Property Value

MediaBlockPad

Outputs

Gets the outputs.

public override MediaBlockPad[] Outputs { get; }

Property Value

MediaBlockPad[]

Settings

Gets or sets the AWS S3 sink settings. Contains S3 bucket configuration, credentials, upload parameters, and storage class options.

public AWSS3SinkSettings Settings { get; set; }

Property Value

AWSS3SinkSettings

Type

Gets the type.

public override MediaBlockType Type { get; }

Property Value

MediaBlockType

Methods

Build()

Constructs and initializes the AWS S3 sink and its associated elements. This method creates the sink with the specified S3 configuration, establishes the input pad, and prepares the block for cloud upload operations.

public override bool Build()

Returns

bool

true if the sink was successfully built and configured; false if initialization failed.

CleanUp()

Releases all resources and performs cleanup operations for this AWS S3 sink block. This method disposes of the S3 sink element and resets the build state.

public void CleanUp()

CreateNewInput(MediaBlockPadMediaType)

Creates a new input pad for the specified media type. This allows the AWS S3 sink to accept multiple media streams (video, audio, etc.) for multiplexed upload to cloud storage.

public MediaBlockPad CreateNewInput(MediaBlockPadMediaType mediaType)

Parameters

mediaType MediaBlockPadMediaType

The type of media this input pad will accept (Video, Audio, Auto, etc.).

Returns

MediaBlockPad

A new VisioForge.Core.MediaBlocks.MediaBlockPad configured for the specified media type, ready to be connected to an upstream media source or processing block.

Dispose(bool)

Releases unmanaged and - optionally - managed resources.

protected override void Dispose(bool disposing)

Parameters

disposing bool

true to release both managed and unmanaged resources; false to release only unmanaged resources.

GetCore()

Gets the core BaseElement wrapper that provides additional functionality around the AWS S3 sink element.

public BaseElement GetCore()

Returns

BaseElement

The BaseElement wrapper instance that encapsulates the S3 sink.

GetElement()

Gets the underlying GStreamer element that performs the S3 upload operations.

public Element GetElement()

Returns

Element

The GStreamer Element instance representing the AWS S3 sink.

GetFilenameOrURL()

Gets the S3 URI for the upload destination. Returns the complete S3 path including bucket and object key.

public string GetFilenameOrURL()

Returns

string

The S3 URI in the format s3://bucket/path/to/object.

IsAvailable()

Determines whether this media block is available. Correct NuGet SDK redist should be included into your project.

public static bool IsAvailable()

Returns

bool

true if this media block is available; otherwise, false.

SetFilenameOrURL(string)

Sets the S3 URI for the upload destination. Updates the target location for media uploads.

public void SetFilenameOrURL(string value)

Parameters

value string

The S3 URI in the format s3://bucket/path/to/object.

Update()

Updates the AWS S3 sink settings during runtime. This method allows dynamic reconfiguration of S3 upload parameters without stopping the pipeline.

public void Update()

IMediaBlockInternals.SetContext(MediaBlocksPipeline)

Associates this AWS S3 sink block with a pipeline and initializes its internal context. This method is called internally when the block is added to a pipeline.

void IMediaBlockInternals.SetContext(MediaBlocksPipeline pipeline)

Parameters

pipeline MediaBlocksPipeline

The MediaBlocksPipeline instance that will manage this block.

See Also