Skip to content

Hosting Assets on S3

We host several different types of assets on AWS S3. These assets include:

  • Curriculum Art/Diagrams
  • Project Files
  • Project Solution Code
  • This Documentation Site

Requesting Access

Before you can upload any assets to S3, you must have an account created for you by Infrastructure. Reach out to someone from that team and they can set you up with an account.

Folder Structure in S3

As a Curriculum Developer, all of the content you upload to S3 should go into the codecademy-content bucket. This bucket is broken up into folders, each of which serves a purpose and the project you are working on will dictate which folder you should use. The most important folders in this bucket are:

  • courses: Use this folder for any assets associated with a course, such as Learn C++. Inside of the parent courses folder, create a sub-folder titled the name of the course and upload the assets there. For example, here is the folder for Learn Go.
  • programs: Similar to courses, any assets for paths and skill paths should be added to this folder, inside a sub-folder named after the path. For example, here is the folder for Build Chatbots with Python.
  • practice: Any assets using in practice content should be added to this folder.

When linking to images that are hosted on S3, we DO NOT want to use the provided S3 link https://codecademy-content.s3.amazonaws.com. We instead want to use CDN link, which is https://content.codecademy.com/.

For example,

  • DO NOT USE: https://codecademy-content.s3.amazonaws.com/programs/chatbots/seq2seq/seq2seq-network.gif
  • DO USE: https://content.codecademy.com/programs/chatbots/seq2seq/seq2seq-network.gif

S3 Best Practices

  • Do not use spaces in folder or file names! Always use a dash for spaces -.
  • Be descriptive but brief with your folder and file names. For example, try to avoid naming an art asset: graph.png.
  • Before uploading, compress the image with a lossless compression tool. We recommend ImageOptim.