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 parentcourses
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 tocourses
, 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.
Using the CDN to link to content on S3
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.