BlendVision One simplifies your video management process by directly integrating with your existing AWS S3 buckets. The following sections will guide you through setting up your cloud storage, obtaining trust policy information, creating cloud storage, and validating the existence of files in your cloud storage.
Direct use of videos stored in S3 buckets
BlendVision One supports using videos directly from your AWS S3 buckets. There's no need to download and upload your videos again, as BlendVision One can access and encode your videos directly from your S3 buckets.
Secure AWS S3 bucket access
For security reasons and to avoid exposing your AWS credentials, we employ AWS IAM Roles to provide BlendVision One access to your S3 buckets. This approach ensures that only the necessary permissions are granted and maintained securely.
To be used as an input for encoding and/or output to receive encoded VODs without disclosing your AWS credentials, we will use AWS IAM Role to allow BlendVision One to access your AWS S3 bucket.
For more information about AWS IAM role, refer to Provide access to AWS account owned by third party.
Obtain AWS trust policy information
Before you start, you need to set up permissions to access the AWS S3 bucket. You can obtain the necessary information for the trust policy by making a POST request to the following API:
POST /bv/configurations/v1/cloud-storages/trust-policy
This will return a response containing:
{ "aws_account_arn": "string", "role_arn": "string", "external_id": "string" }
This information is then used in a trust policy, which is a document that defines permissions for a user, group, or role. Here's an example of what a trust policy looks like:
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"{aws_account_arn}" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "sts:ExternalId":"{external_id}" }, "ArnEquals":{ "aws:PrincipalArn":"{role_arn}" } } } ] }
Create cloud storage
To create cloud storage where you will be storing your assets for encoding, use the following API:
POST /bv/configuration/v1/cloud-storages
The parameters required for aws_storage
to create the cloud storage for AWS S3 bucket:
name | type | description |
bucket_name | string | AWS S3 bucket name |
path | string | Path to AWS S3 bucket |
region | string | The region of AWS S3 |
user_role_arn | string | The user role ARN to set permissions to the bucket |
external_id | string | The external ID to identify the AWS settings |
Your request body should look like:
"cloud_storage":{ "name":"your cloud storage name", "type":"CLOUD_STORAGE_TYPE_AWS", "aws_storage":{ "bucket_name":"your AWS bucket name", "path":"path to your AWS bucket", "region":"region of your AWS S3", "user_role_arn":"your user role ARN", "external_id":"your external ID" } }
Upon successfully creating the cloud storage, the API will return a response containing the ID of the newly created cloud storage. Remember to set the permissions so the platform can fetch the assets or store outputs.
Validate cloud storage
Before starting encoding, you can validate if the file exists in the cloud storage by using the following API:
POST /bv/cms/v1/cloud-storages/{id}:validate-file
Once the file in cloud storage can be fetched successfully, the response containing file_path
, file_name
, and file_size
will be returned. Here's an example of a response:
{ "id":"string", "file_path":"string", "file_name":"string", "file_size":"string" }
With these steps, you can effectively manage your videos with BlendVision One, leveraging your existing AWS S3 buckets while ensuring secure access and utilization.