Copy From Your Cloud
BlendVision One supports integration with your existing AWS S3 buckets, allowing secure access and utilization of video files directly from your S3 buckets for the encoding jobs, without the hassle of downloading and uploading.
File Type | Accepted Formats | Maximum Size |
---|---|---|
Video | avi ,.mpg ,.mp4 ,.ts ,.m2ts ,.mov ,.mkv ,.wmv ,.bdav | 70 GB |
Here are the steps to set it up:
Step 1. Secure AWS S3 Bucket Access
For security reasons and to avoid exposing your AWS credentials, we employ AWS IAM Roles to provide BlendVision 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 to access your AWS S3 bucket.
For more information about AWS IAM role, refer to Provide access to AWS account owned by third party.
Step 2. Obtain AWS Trust Policy Information
To obtain the necessary information for setting up permissions to access your AWS S3 bucket, make a GET request to the following API:
GET /bv/configuration/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}"
}
}
}
]
}
Step 3. Create Cloud Storage
To create cloud storage where you will store your assets for encoding, make a POST request to 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 |
Here is an example of the request body:
"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 that the platform can fetch the assets or store outputs.
Step 4. 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"
}