- fork this repository & create a new branch for your work
- write all of your code in a directory named
lab-+<your name>e.g.lab-susan - push to your repository
- submit a pull request to this repository
- submit a link to your PR in canvas
- write a question and observation on canvas
- students will be able to upload static assets to AWS S3
- students will be able to retrieve a cdn url that contains the previously uploaded static asset
- students will be able to work with secret and public access keys
package.json.eslintrc.gitignoreREADME.md
- create an AWS account
- create an AWS Access Key and Secret
- add the Access Key and Secret to your
.envfile
- add the Access Key and Secret to your
- create a new model that represents a file type that you want to store on AWS S3
- ex:
.mp3,.mp4,.png, etc
- ex:
- create a test that uploads one of these files to your route
- use the
aws-sdkto assist with uploading - use
multerto parse the file upload request
POST-/api/resource/:resourceID/new-resource
POST- 200 - test that the upload worked and a resource object is returned
DELETEroute -/api/resource/:resourceID/new-resource/:new-resourceID- Test:
DELETE- 204 - test to ensure the object was deleted from s3
- try using the
deleteObjectmethod provided by theaws-sdkto delete an object (file) from S3- you will need to pass in a
paramsobject that contains the associated Bucket and AWS object key in order to delete the object from s3 - ex:
var params = { Bucket: 's3-bucket-name', Key: 'object-filename' } s3.deleteObject(params)
- you will need to pass in a
- don't forget to remove the resource from the DB