Using Amazon S3 with Instant TV Channel

This step-by-step walk-through will guide you through the process of creating an Amazon S3 (Simple Storage Service) bucket to store public Roku content such as poster images or video/audio content files. Content stored in the S3 bucket will be accessible from a Roku channel or from a computer with a web browser. The S3 bucket will be functionally the same as a directory or folder on a web server, except that it will have a virtually unlimited amount of bandwidth available.

See this walk-through for help using Amazon S3 for Instant TV Channel configuration files if your channel will have more than 100 video or audio content items.
  1. Log into your AWS (Amazon Web Services) account and go to the S3 section of your AWS control panel.
  2. Click the Create Bucket button.
  3. Provide a Bucket Name, for example "my-public-bucket".

    Very Important: Use only lower-case characters, digits, and dashes in your bucket name. Instant TV Channel does not support the use of upper-case characters or other symbols in bucket names.

    Good Bucket Name: test-bucket
    Good Bucket Name: bucket123
    Bad Bucket Name: test.bucket (contains unsupported period character ".")
    Bad Bucket Name: bucket+123 (contains unsupported plus character "+")
    Bad Bucket Name: Test-Bucket (contains upper-case characters "T" and "B")
  4. The bucket Region should be set to "US East (N. Virginia)".
  5. Click the Create button, do not click the Next button.

Now we will add a bucket policy. This will allow every file in your bucket to be publicly accessible without having to individually adjust the permissions on each file.

  1. Click the newly-created bucket name. This will display a page with several tabs, such as "Overview", "Properties", "Lifecycle", "Permissions", and "Management".
  2. Click the Permissions tab.
  3. Click Bucket Policy. This will open a Bucket policy editor window.
  4. Copy the policy below and paste it into the Bucket Policy Editor window, replacing
    with the actual name of the bucket that you just created. This policy specifies that anybody can read the contents of the bucket.
      "Id": "MyBucketPolicy",
      "Statement": [
          "Action": ["s3:GetObject"],
          "Effect": "Allow",
          "Resource": "arn:aws:s3:::my-public-bucket/*",
          "Principal": {"AWS": ["*"]}
  5. Click the Save button.
  6. Click the Amazon S3 link at the upper left of the page to return to the list of S3 buckets.

At this point your new S3 bucket is ready to store publicly-accessible files.

You can upload files to the new bucket by clicking the Upload button in the S3 control panel.

If you created an S3 bucket in the default region named "my-public-bucket" and put a poster file named "poster.jpg" into it, then the URL that would be used to access the poster would be:

If you created an S3 bucket that was in a different region, for example "us-west", then the URL that would be used to access the poster would be similar to:

Do not use SSL URLs (URLs starting with https) to access poster artwork, as it will greatly increase the time it takes for your Roku channel to load the posters, particularly in large horizontal lists or grids.

For a walk-through on how to build a Roku channel using Instant TV Channel, please visit this link.

Comments or questions about this Roku & S3 developer tutorial can be emailed to .

Instant TV Channel is a cloud-based tool for Roku developers and content providers that shortens development time and eases maintenance after deployment.

Access Code: GRID3
Check out Instant TV Channel by adding our demonstration channel to your Roku player, or watch the YouTube video.

Need help with your Roku?

We are unable to provide technical support for your Roku device.

Please visit for assistance.

Instant TV Channel is not affiliated with nor endorsed by Roku Inc.