https://github.com/codingforentrepreneurs/dive-into-aws-course---direct-to-s3-via-django-javascript
In this section, we'll be implementing our Reusable Boto3 Utility (https://cfe.sh/courses/aws/reusable-boto3-utility) to implement secure direct to S3 uploads as well as secure downloads via Django & JavaScript.
https://github.com/codingforentrepreneurs/dive-into-aws-course---direct-to-s3-via-django-javascript
aws boto3 django download javascript reusable-boto3-utility s3 upload
Last synced: 5 months ago
JSON representation
In this section, we'll be implementing our Reusable Boto3 Utility (https://cfe.sh/courses/aws/reusable-boto3-utility) to implement secure direct to S3 uploads as well as secure downloads via Django & JavaScript.
- Host: GitHub
- URL: https://github.com/codingforentrepreneurs/dive-into-aws-course---direct-to-s3-via-django-javascript
- Owner: codingforentrepreneurs
- License: mit
- Created: 2018-12-17T05:33:00.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T01:31:30.000Z (over 3 years ago)
- Last Synced: 2024-03-15T19:57:59.630Z (over 2 years ago)
- Topics: aws, boto3, django, download, javascript, reusable-boto3-utility, s3, upload
- Language: Python
- Size: 1.8 MB
- Stars: 30
- Watchers: 3
- Forks: 18
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Direct to S3 via Django & JavaScript
In this section, we'll be implementing our [Reusable Boto3 Utility](https://cfe.sh/courses/aws/reusable-boto3-utility) to implement secure direct to S3 uploads as well as secure downloads via Django & JavaScript.
### Lesson Code
[1 - Copy Section 5 Code](../../tree/7907a9f36f352bc5cd3996b6ca5dc0fbd3603125/)
[2 - Integrate Custom Boto3 Utility](../../tree/850c18dba1d957189456172146ada61381bdc171/)
[3 - AWS Config in Settings](../../tree/b89c4226902ac00617b5cfd26a96ab39e297c33c/)
[4 - AWS Config TestCase](../../tree/ad60c32ba3128fa52e40d2bbc806c3ed321f6d69/)
5 - Advantages of using Django to manage S3 files _No New Code_
[6 - S3 File Model](../../tree/dd8bfd954c518e3aba584825af67afec37ab03c9/)
[7 - Why not FileField or ImageField](../../tree/0aefde77ee7722a26825fe3d2e3da616046d613f/)
[8 - Download URL Instance Method](../../tree/c5c7c62e1fb894738690987a29913be78c714f69/)
[9 - Download File View](../../tree/8bf7ad5157f8de048887c4d37adc29f70f06b692/)
[10 - Force Download via Custom Boto3 Client](../../tree/c616ec8310e291cc965f2244554a57da3547f445/)
[11 - Downloading a Custom Filename](../../tree/9cddd91e7b41fd8faae6c62ea70ba237e0ed2eac/)
[12 - Setup Upload Template View](../../tree/6804334a16cdaffce187945863992764e73c94ab/)
[13 - Signed S3 Upload Policy via URL Endpoint](../../tree/9a2fe92352446a8a7d7b7e8c277f1cb45bcea0f1/)
[14 - S3 Direct via Python](../../tree/76800093c0f9af9ab27305dc6e9a484c4caa341c/)
[15 - Policy via HTTP POST Method](../../tree/ada94d370c22476ba60ae1e47e44aea3894a2f14/)
[16 - CSRF Exempt for Testing](../../tree/8910433818a7d8ed5d1675d1e000fe8e8ec8f162/)
[17 - Django Model Managing S3 Keys](../../tree/9674e6132e4a6e3e8e78a9126cc23f3ca127f152/)
[18 - Additional Client-side Data for S3 File](../../tree/b629ce9a3d65f3abfa0f01075f4bd29dc2ea9389/)
[19 - Update Backend on Successful Upload](../../tree/f392d197439ef897c4675128b5e661299fda68e3/)
[20 - Django Rest Framework Serializer Validation](../../tree/70d3e16e66337ccddd650b0f8b57af4e2514f922/)
[21 - Saving a Model Serializer](../../tree/2365efa4b8878e68609b6a818f52e6e5b4718868/)
[22 - JSON for HTTP Methods.](../../tree/f693aabbbd5603b4f530fb8ad83dad1f68edd21b/)
[23 - Upload Policy View as DRF](../../tree/840a7a3cdbde3277553934aabba1ae1cd7c7bed7/)
[24 - Create API View and Invalid Data](../../tree/5fd45fb25aa558642816056b88848bf13d05edae/)
[25 - Html Upload Form](../../tree/c5bb5869762c561c8be4a474dec35913792dd0f5/)
[26 - Raw Javascript Upload - Files List From Input](../../tree/38b570a78847794867872af284cdf22c73e682e2/)
[27 - Display Items to be Uploaded](../../tree/314401ca05d6143a6b56a94b8aaf8ea633e3ae8b/)
[28 - Raw Javascript Upload - Verify File Type](../../tree/c22c02058e51e3cf9bc1ef7d119d9880b7df4275/)
[29 - Raw Javascript Upload - File Policy via XML Http Request](../../tree/ed41510938c279b7aa5b5731885880bc2c4a2d71/)
[30 - Raw Javascript Upload - new FormData](../../tree/ed41510938c279b7aa5b5731885880bc2c4a2d71/)
[31 - Raw Javascript Upload - Iterate through Dictionary to Generate Form Data](../../tree/d365eb86f4ae66e54261663b9dc8258a2c8c0240/)
[32 - Raw Javascript Upload - Direct to S3](../../tree/5939203e08fc509ce7121cd41928a0a199698915/)
[33- Raw Javascript Upload - Upload Progress](../../tree/53416c60aacc607afbc98ea36ece0eb99499e1f2/)
[34 - Raw Javascript Upload - Update Django](../../tree/3011f873f3fd26f349eeb51cd3bb5c420cf20738/)
[35 - Update Upload Policy View for Multiple Files](../../tree/fd29e62624c1c103d4182bd89dedf4933d208f63/)
[36 - View Progress on HTML](../../tree/0798b20b09b046fa8df9e536fe62b47ad943d1ec)
[37 - User Login Required](../../tree/3c46f19ab1071ca31a46b40ff420e0ce5534eac9)