Upload Video to S3 from CMS

Hello all
I am trying to set s3 for videos
for this I have set:
“AWS_ACCESS_KEY_ID” : “access-key”,
“AWS_S3_CUSTOM_DOMAIN” : “bucket-name.s3.amazonaws.com”,
“AWS_SECRET_ACCESS_KEY” : “secret-key”,
“AWS_STORAGE_BUCKET_NAME” : “bucket-name”,
“VIDEO_UPLOAD_PIPELINE”: {
“BUCKET”: “bucket-name”,
“ROOT_PATH”: “/video”
},
And enabled necessary settings in admin aswell
I am able to upload videos to s3 from CMS successfully
But if I enter URL like this in video unit :
https://bucket-name.s3.amazonaws.com/video/<edx_video_id>
and save it, then getting a below-mentioned error in the browser console:
Failed to load resource: the server responded with a status of 403 (Forbidden)
How can I access video in course from s3? Am I missing something?

And in addition, I went to know that anything uploaded from CMS has no public access(ACL is private), but if the file is uploaded from LMS then it has public access(ACL is public-read);
so, I have two options:

  1. Make object public while uploading from CMS
  2. Access object with signed URL (which is used in course export)
    Which is the best way?
1 Like

Hi JayRam. Which version of edx are you using?

I am not very clear on the details of the video pipeline and delivery system, but I believe that you will need to make your S3 objects public, at least to requests from your edx server. As far as I’ve been able to tell, edx-platform does not support signed URLs.

Are you actually using the edx video pipeline tool for transcoding? We tried to set that up, but eventually gave up and are using our own system based on AWS Elastic Transcode.

1 Like

Hello Peter Pinch,

Thanks for the reply,

We are using hawthorn version of edx.

And I have created signed URL using custom storage back-end(which inherits S3BotoStorage) and it worked.

But still, have lots of question regarding the use of s3 in open edx like Why ACL is set to private for CMS?

And recently faced a new issue: We were able to access videos using signed URL in web browser on lms side but the same was not working in our mobile app

So I need to add extension of the video while uploading and then it worked.

It would be a great help if anybody from the community can answer.

I’m sorry I missed your follow up @jramnai

I can’t help much with your questions, but I have heard there is a pretty robust community around the mobile app. I don’t see a category for “mobile” on this site, but there are a couple of mobile channels in Slack. Maybe someone there can help.

Thanks for your follow up @pdpinch,

As I have previously replied we have implemented video’s feature using signed URL.

And its working, still will look into it whenever I have some time, looking forward for the community response on this topic to clear my doubts.