RenΓ©'s URL Explorer Experiment


Title: GitHub - YomiPython/imgup: πŸŒ… Effortless image uploads to AWS S3 with automatic resizing including REST API.

Open Graph Title: GitHub - YomiPython/imgup: πŸŒ… Effortless image uploads to AWS S3 with automatic resizing including REST API.

X Title: GitHub - YomiPython/imgup: πŸŒ… Effortless image uploads to AWS S3 with automatic resizing including REST API.

Description: πŸŒ… Effortless image uploads to AWS S3 with automatic resizing including REST API. - YomiPython/imgup

Open Graph Description: πŸŒ… Effortless image uploads to AWS S3 with automatic resizing including REST API. - YomiPython/imgup

X Description: πŸŒ… Effortless image uploads to AWS S3 with automatic resizing including REST API. - YomiPython/imgup

Opengraph URL: https://github.com/YomiPython/imgup

X: @github

direct link

Domain: patch-diff.githubusercontent.com

route-pattern/:user_id/:repository
route-controllerfiles
route-actiondisambiguate
fetch-noncev2:7e1bcfbc-ef64-c1df-28ca-62e34692d876
current-catalog-service-hashf3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb
request-idC128:3930F2:1C119C8:23D674D:69746B95
html-safe-nonce1e48e74ec68d1d3e517e61ed37d7f8c3accac480837ed9fdfa5d3d81708cea03
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDMTI4OjM5MzBGMjoxQzExOUM4OjIzRDY3NEQ6Njk3NDZCOTUiLCJ2aXNpdG9yX2lkIjoiNjI0NDM4ODUxNjAyOTI5NTUxMCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac05ade009409ef2bed2febd8cb400edb8a113258050c9c72791b550b30113ff43
hovercard-subject-tagrepository:683390387
github-keyboard-shortcutsrepository,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location//
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/YomiPython/imgup
twitter:imagehttps://opengraph.githubassets.com/9a276fbf3425c9e3012f59fb8537d359c74763e552e283354348845ce89f8c27/YomiPython/imgup
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/9a276fbf3425c9e3012f59fb8537d359c74763e552e283354348845ce89f8c27/YomiPython/imgup
og:image:altπŸŒ… Effortless image uploads to AWS S3 with automatic resizing including REST API. - YomiPython/imgup
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Nonee0b95d743b7672c9ac0e1032d5f117950182dc164a83434a7db86510e8f0b37c
turbo-cache-controlno-preview
go-importgithub.com/YomiPython/imgup git https://github.com/YomiPython/imgup.git
octolytics-dimension-user_id102403884
octolytics-dimension-user_loginYomiPython
octolytics-dimension-repository_id683390387
octolytics-dimension-repository_nwoYomiPython/imgup
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forktrue
octolytics-dimension-repository_parent_id17365173
octolytics-dimension-repository_parent_nwodwyl/imgup
octolytics-dimension-repository_network_root_id17365173
octolytics-dimension-repository_network_root_nwodwyl/imgup
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release56fe7e2e8de6e57740bca50402351ea656f7a4bf
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://patch-diff.githubusercontent.com/YomiPython/imgup#start-of-content
https://patch-diff.githubusercontent.com/
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2FYomiPython%2Fimgup
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2FYomiPython%2Fimgup
Sign up https://patch-diff.githubusercontent.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=YomiPython%2Fimgup
Reloadhttps://patch-diff.githubusercontent.com/YomiPython/imgup
Reloadhttps://patch-diff.githubusercontent.com/YomiPython/imgup
Reloadhttps://patch-diff.githubusercontent.com/YomiPython/imgup
YomiPython https://patch-diff.githubusercontent.com/YomiPython
imguphttps://patch-diff.githubusercontent.com/YomiPython/imgup
dwyl/imguphttps://patch-diff.githubusercontent.com/dwyl/imgup
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2FYomiPython%2Fimgup
Fork 0 https://patch-diff.githubusercontent.com/login?return_to=%2FYomiPython%2Fimgup
Star 0 https://patch-diff.githubusercontent.com/login?return_to=%2FYomiPython%2Fimgup
imgup.fly.dev/https://imgup.fly.dev/
0 stars https://patch-diff.githubusercontent.com/YomiPython/imgup/stargazers
21 forks https://patch-diff.githubusercontent.com/YomiPython/imgup/forks
Branches https://patch-diff.githubusercontent.com/YomiPython/imgup/branches
Tags https://patch-diff.githubusercontent.com/YomiPython/imgup/tags
Activity https://patch-diff.githubusercontent.com/YomiPython/imgup/activity
Star https://patch-diff.githubusercontent.com/login?return_to=%2FYomiPython%2Fimgup
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2FYomiPython%2Fimgup
Code https://patch-diff.githubusercontent.com/YomiPython/imgup
Pull requests 0 https://patch-diff.githubusercontent.com/YomiPython/imgup/pulls
Actions https://patch-diff.githubusercontent.com/YomiPython/imgup/actions
Projects 0 https://patch-diff.githubusercontent.com/YomiPython/imgup/projects
Security 0 https://patch-diff.githubusercontent.com/YomiPython/imgup/security
Insights https://patch-diff.githubusercontent.com/YomiPython/imgup/pulse
Code https://patch-diff.githubusercontent.com/YomiPython/imgup
Pull requests https://patch-diff.githubusercontent.com/YomiPython/imgup/pulls
Actions https://patch-diff.githubusercontent.com/YomiPython/imgup/actions
Projects https://patch-diff.githubusercontent.com/YomiPython/imgup/projects
Security https://patch-diff.githubusercontent.com/YomiPython/imgup/security
Insights https://patch-diff.githubusercontent.com/YomiPython/imgup/pulse
Brancheshttps://patch-diff.githubusercontent.com/YomiPython/imgup/branches
Tagshttps://patch-diff.githubusercontent.com/YomiPython/imgup/tags
https://patch-diff.githubusercontent.com/YomiPython/imgup/branches
https://patch-diff.githubusercontent.com/YomiPython/imgup/tags
345 Commitshttps://patch-diff.githubusercontent.com/YomiPython/imgup/commits/main/
https://patch-diff.githubusercontent.com/YomiPython/imgup/commits/main/
.githubhttps://patch-diff.githubusercontent.com/YomiPython/imgup/tree/main/.github
.githubhttps://patch-diff.githubusercontent.com/YomiPython/imgup/tree/main/.github
_archivehttps://patch-diff.githubusercontent.com/YomiPython/imgup/tree/main/_archive
_archivehttps://patch-diff.githubusercontent.com/YomiPython/imgup/tree/main/_archive
an_aws_sam_imgup-compressorhttps://patch-diff.githubusercontent.com/YomiPython/imgup/tree/main/an_aws_sam_imgup-compressor
an_aws_sam_imgup-compressorhttps://patch-diff.githubusercontent.com/YomiPython/imgup/tree/main/an_aws_sam_imgup-compressor
assetshttps://patch-diff.githubusercontent.com/YomiPython/imgup/tree/main/assets
assetshttps://patch-diff.githubusercontent.com/YomiPython/imgup/tree/main/assets
confighttps://patch-diff.githubusercontent.com/YomiPython/imgup/tree/main/config
confighttps://patch-diff.githubusercontent.com/YomiPython/imgup/tree/main/config
libhttps://patch-diff.githubusercontent.com/YomiPython/imgup/tree/main/lib
libhttps://patch-diff.githubusercontent.com/YomiPython/imgup/tree/main/lib
privhttps://patch-diff.githubusercontent.com/YomiPython/imgup/tree/main/priv
privhttps://patch-diff.githubusercontent.com/YomiPython/imgup/tree/main/priv
rel/overlays/binhttps://patch-diff.githubusercontent.com/YomiPython/imgup/tree/main/rel/overlays/bin
rel/overlays/binhttps://patch-diff.githubusercontent.com/YomiPython/imgup/tree/main/rel/overlays/bin
testhttps://patch-diff.githubusercontent.com/YomiPython/imgup/tree/main/test
testhttps://patch-diff.githubusercontent.com/YomiPython/imgup/tree/main/test
.dockerignorehttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/.dockerignore
.dockerignorehttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/.dockerignore
.formatter.exshttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/.formatter.exs
.formatter.exshttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/.formatter.exs
.gitignorehttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/.gitignore
.gitignorehttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/.gitignore
Dockerfilehttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/Dockerfile
Dockerfilehttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/Dockerfile
README.mdhttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/README.md
README.mdhttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/README.md
api.mdhttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/api.md
api.mdhttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/api.md
coveralls.jsonhttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/coveralls.json
coveralls.jsonhttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/coveralls.json
fly.tomlhttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/fly.toml
fly.tomlhttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/fly.toml
mix.exshttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/mix.exs
mix.exshttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/mix.exs
mix.lockhttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/mix.lock
mix.lockhttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/mix.lock
READMEhttps://patch-diff.githubusercontent.com/YomiPython/imgup
https://patch-diff.githubusercontent.com/YomiPython/imgup#image-uploads
https://camo.githubusercontent.com/b1dc4099f67d9ec1c2bac0aa2e40b36288c58c3884d2f140b6be84248e46aca4/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6477796c2f696d6775702f63692e796d6c3f6c6162656c3d6275696c64267374796c653d666c61742d737175617265266272616e63683d6d61696e
https://codecov.io/github/dwyl/imgup?branch=main
https://github.com/dwyl/imgup/issues
https://hits.dwyl.com/dwyl/imgup
image uploadshttps://patch-diff.githubusercontent.com/YomiPython/imgup#image-uploads
Why? 🀷https://patch-diff.githubusercontent.com/YomiPython/imgup#why-
What? πŸ’­https://patch-diff.githubusercontent.com/YomiPython/imgup#what-
Who? πŸ‘€https://patch-diff.githubusercontent.com/YomiPython/imgup#who-
How? πŸ’»https://patch-diff.githubusercontent.com/YomiPython/imgup#how-
Prerequisiteshttps://patch-diff.githubusercontent.com/YomiPython/imgup#prerequisites
Run the App!https://patch-diff.githubusercontent.com/YomiPython/imgup#run-the-app
1. Clone the Repohttps://patch-diff.githubusercontent.com/YomiPython/imgup#1-clone-the-repo
2. Get your AWS Keys and Export as Environment Variableshttps://patch-diff.githubusercontent.com/YomiPython/imgup#2-get-your-aws-keys-and-export-as-environment-variables
3. Download the Dependencies and Run the App!https://patch-diff.githubusercontent.com/YomiPython/imgup#3-download-the-dependencies-and-run-the-app
Build It! πŸ‘©β€πŸ’»https://patch-diff.githubusercontent.com/YomiPython/imgup#build-it-
0. Creating a fresh Phoenix projecthttps://patch-diff.githubusercontent.com/YomiPython/imgup#0-creating-a-fresh-phoenix-project
1. Adding LiveView capabilities to our projecthttps://patch-diff.githubusercontent.com/YomiPython/imgup#1-adding-liveview-capabilities-to-our-project
2. Local file upload and previewhttps://patch-diff.githubusercontent.com/YomiPython/imgup#2-local-file-upload-and-preview
3. File validationhttps://patch-diff.githubusercontent.com/YomiPython/imgup#3-file-validation
4. Uploading image to AWS S3 buckethttps://patch-diff.githubusercontent.com/YomiPython/imgup#4-uploading-image-to-aws-s3-bucket
4.1 Adding multipart form data for images to be uploaded to the buckethttps://patch-diff.githubusercontent.com/YomiPython/imgup#41-adding-multipart-form-data-for-images-to-be-uploaded-to-the-bucket
4.2 Implementing the S3 JavaScript client uploaderhttps://patch-diff.githubusercontent.com/YomiPython/imgup#42-implementing-the-s3-javascript-client-uploader
4.3 Creating the AWS S3 buckethttps://patch-diff.githubusercontent.com/YomiPython/imgup#43-creating-the-aws-s3-bucket
4.3.1 Changing the bucket permissionshttps://patch-diff.githubusercontent.com/YomiPython/imgup#431-changing-the-bucket-permissions
4.4 Getting our credentialshttps://patch-diff.githubusercontent.com/YomiPython/imgup#44-getting-our-credentials
4.5 Changing view to upload fileshttps://patch-diff.githubusercontent.com/YomiPython/imgup#45-changing-view-to-upload-files
5. Feedback on progress of uploadhttps://patch-diff.githubusercontent.com/YomiPython/imgup#5-feedback-on-progress-of-upload
6. Unique file nameshttps://patch-diff.githubusercontent.com/YomiPython/imgup#6-unique-file-names
7. Resizing/compressing fileshttps://patch-diff.githubusercontent.com/YomiPython/imgup#7-resizingcompressing-files
7.1 Installing AWS CLI and AWS SAM CLIhttps://patch-diff.githubusercontent.com/YomiPython/imgup#71-installing-aws-cli-and-aws-sam-cli
7.2 Creating a new AWS SAM projecthttps://patch-diff.githubusercontent.com/YomiPython/imgup#72-creating-a-new-aws-sam-project
7.3 Changing the AWS SAM project fileshttps://patch-diff.githubusercontent.com/YomiPython/imgup#73-changing-the-aws-sam-project-files
7.3.1 Implementing the src/index.js handlerhttps://patch-diff.githubusercontent.com/YomiPython/imgup#731-implementing-the-srcindexjs-handler
7.4 Deploying our AWS SAM projecthttps://patch-diff.githubusercontent.com/YomiPython/imgup#74-deploying-our-aws-sam-project
7.5 Testing the deployed SAM project in AWS Consolehttps://patch-diff.githubusercontent.com/YomiPython/imgup#75-testing-the-deployed-sam-project-in-aws-console
7.5.1 What if I want to make changes to the function?https://patch-diff.githubusercontent.com/YomiPython/imgup#751-what-if-i-want-to-make-changes-to-the-function
7.6 Refactoring the Phoenix app to use image compressionhttps://patch-diff.githubusercontent.com/YomiPython/imgup#76-refactoring-the-phoenix-app-to-use-image-compression
7.7 Run it!https://patch-diff.githubusercontent.com/YomiPython/imgup#77-run-it
8. A note when deploying onlinehttps://patch-diff.githubusercontent.com/YomiPython/imgup#8-a-note-when-deploying-online
9. Uploading files without Javascripthttps://patch-diff.githubusercontent.com/YomiPython/imgup#9-uploading-files-without-javascript
9.1 Creating a new LiveViewhttps://patch-diff.githubusercontent.com/YomiPython/imgup#91-creating-a-new-liveview
9.2 Adding our viewhttps://patch-diff.githubusercontent.com/YomiPython/imgup#92-adding-our-view
Please Star the repo! ⭐️https://patch-diff.githubusercontent.com/YomiPython/imgup#please-star-the-repo-%EF%B8%8F
https://patch-diff.githubusercontent.com/YomiPython/imgup#why-
apphttps://github.com/dwyl/app
https://patch-diff.githubusercontent.com/YomiPython/imgup#what-
AWS S3https://aws.amazon.com/s3/
https://patch-diff.githubusercontent.com/YomiPython/imgup#who-
dwyl/phoenix-liveview-counter-tutorialhttps://github.com/dwyl/phoenix-liveview-counter-tutorial
https://patch-diff.githubusercontent.com/YomiPython/imgup#how-
https://patch-diff.githubusercontent.com/YomiPython/imgup#prerequisites
how to install Elixirhttps://github.com/dwyl/learn-elixir#installation
Phoenixhttps://hexdocs.pm/phoenix/installation.html#phoenix
github.com/dwyl/phoenix-chat-examplehttps://github.com/dwyl/phoenix-chat-example
/dwyl/imgup/issueshttps://github.com/dwyl/imgup/issues
https://patch-diff.githubusercontent.com/YomiPython/imgup#run-the-app
imgup.fly.devhttps://imgup.fly.dev/
https://patch-diff.githubusercontent.com/YomiPython/imgup#1-clone-the-repo
https://patch-diff.githubusercontent.com/YomiPython/imgup#2-get-your-aws-keys-and-export-as-environment-variables
api.mdhttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/api.md
https://patch-diff.githubusercontent.com/YomiPython/imgup#3-download-the-dependencies-and-run-the-app
localhost:4000http://localhost:4000
https://patch-diff.githubusercontent.com/YomiPython/imgup#build-it-‍
https://patch-diff.githubusercontent.com/YomiPython/imgup#0-creating-a-fresh-phoenix-project
mix phx.newhttps://hexdocs.pm/phoenix/Mix.Tasks.Phx.New.html
https://private-user-images.githubusercontent.com/17494745/241708125-b40f4e79-e225-4226-8112-c490b5b4bf46.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDE3MDgxMjUtYjQwZjRlNzktZTIyNS00MjI2LTgxMTItYzQ5MGI1YjRiZjQ2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRmM2NlZmQ4OTk2ZjJhMzk2YmQwMTczNmUxN2Y3ZDY4NjcyMjQ3ZjEyMjRlOTg4N2Y3ODZlYmNiN2UxYzAwNDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.UunmxpjcYgDI-NMBHSMzuIGrymCky6YJbPcy4byap50
https://patch-diff.githubusercontent.com/YomiPython/imgup#1-adding-liveview-capabilities-to-our-project
allow_upload/3https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html#allow_upload/3
Tailwind CSShttps://github.com/dwyl/learn-tailwind
https://private-user-images.githubusercontent.com/17494745/241729959-5a3438fe-fa45-47f9-8cb2-9d6d405f55a0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDE3Mjk5NTktNWEzNDM4ZmUtZmE0NS00N2Y5LThjYjItOWQ2ZDQwNWY1NWEwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIyNzhiZjk2MWU1MTQ1NjNhMjM2NDBmOGNiMGViNTZjZjdiNTZkOGYwMjY1M2Y1ZGY1NjMwZmVkMzNmYzc5ODkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.JVeCO4QkYN7ZAwXOVnr91I5lB58840rIXUfsCaMMjWw
b414b11https://github.com/dwyl/imgup/pull/55/commits
https://patch-diff.githubusercontent.com/YomiPython/imgup#2-local-file-upload-and-preview
<.live_file_input/>https://hexdocs.pm/phoenix_live_view/Phoenix.Component.html#live_file_input/1
live_img_preview/1https://hexdocs.pm/phoenix_live_view/Phoenix.Component.html#live_img_preview/1
cancel_upload/3https://hexdocs.pm/phoenix_live_view/0.18.16/Phoenix.LiveView.html#cancel_upload/3
https://hexdocs.pm/phoenix_live_view/uploads.html#render-reactive-elementshttps://hexdocs.pm/phoenix_live_view/uploads.html#render-reactive-elements
https://private-user-images.githubusercontent.com/17494745/241785143-ca60e4c5-1e6e-4179-ad39-5fd9f63b244a.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDE3ODUxNDMtY2E2MGU0YzUtMWU2ZS00MTc5LWFkMzktNWZkOWY2M2IyNDRhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFhOWQ1ZDQ2ZGZiMDI4ZjRiMTM5MTExOGM2YjkzYmI3OWE0OTA4N2NhMjExNWZlZDBkYTdiZTY3ZTkwYTRjNTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.ROIfwKGTQFTxfgoxtrlS2x0PyTZZbQhsVEGQ5QnawUM
https://patch-diff.githubusercontent.com/YomiPython/imgup#3-file-validation
upload_errors/2https://hexdocs.pm/phoenix_live_view/Phoenix.Component.html#upload_errors/2
https://private-user-images.githubusercontent.com/17494745/241961887-f36d49c6-1744-4615-9380-72c657204ee0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDE5NjE4ODctZjM2ZDQ5YzYtMTc0NC00NjE1LTkzODAtNzJjNjU3MjA0ZWUwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFjZThkYjE0Mzc1YjNmYTZlNWM0MmExMjA3YTVjY2Q0MWM1MDNhMzM2ZWRhZWRiNTE0NTk1NDBjMmU1N2Y4MjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.hefMb0jfj-aJdtsdZbLpj29-2JoYCe3yWZCWDxZq-Cw
https://patch-diff.githubusercontent.com/YomiPython/imgup#4-uploading-image-to-aws-s3-bucket
:externalhttps://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html#allow_upload/3
multipart form datahttps://developer.mozilla.org/en-US/docs/Web/API/FormData
https://patch-diff.githubusercontent.com/YomiPython/imgup#41-adding-multipart-form-data-for-images-to-be-uploaded-to-the-bucket
https://gist.github.com/chrismccord/37862f1f8b1f5148644b75d20d1cb073https://gist.github.com/chrismccord/37862f1f8b1f5148644b75d20d1cb073
https://patch-diff.githubusercontent.com/YomiPython/imgup#42-implementing-the-s3-javascript-client-uploader
https://patch-diff.githubusercontent.com/YomiPython/imgup#43-creating-the-aws-s3-bucket
https://github.com/dwyl/learn-amazon-web-serviceshttps://github.com/dwyl/learn-amazon-web-services
https://www.youtube.com/watch?v=77lMCiiMilo&ab_channel=AmazonWebServiceshttps://www.youtube.com/watch?v=77lMCiiMilo&ab_channel=AmazonWebServices
https://s3.console.aws.amazon.com/s3/homehttps://s3.console.aws.amazon.com/s3/home
https://private-user-images.githubusercontent.com/17494745/242108221-326a6987-40ce-495e-a56d-a395cf2cb5c6.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDIxMDgyMjEtMzI2YTY5ODctNDBjZS00OTVlLWE1NmQtYTM5NWNmMmNiNWM2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBiMDNjODhmZWNkYTk0YWJhNWFhMTZiNTExZTVmYWFhYWJiY2UxZWVhM2U3NjY1MjdhMDg5NTMxOTUwZDZmOTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.YmXDGu04bsxtrDl_Vu_49PMvo3ZIvueXrxw2AYYXP6s
https://private-user-images.githubusercontent.com/17494745/242109999-0ca112ef-a1f1-4e93-a588-c1d7722e0c5a.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDIxMDk5OTktMGNhMTEyZWYtYTFmMS00ZTkzLWE1ODgtYzFkNzcyMmUwYzVhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNhYzAzOTZmYWFmZWVjOWE1YmViZWM1MzE0MGIzMzRhNjQ5Yjg4Njg1OTgwNjJjYzVjZGQwZmY5NmQxMmUxYzYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.xtm4ThxpE0Muoir-h6KlNgRwtur0-hPHBYK1YqHbl_o
https://patch-diff.githubusercontent.com/YomiPython/imgup#431-changing-the-bucket-permissions
https://private-user-images.githubusercontent.com/17494745/242109875-42894e81-cd24-469f-9112-ff3ce707f175.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDIxMDk4NzUtNDI4OTRlODEtY2QyNC00NjlmLTkxMTItZmYzY2U3MDdmMTc1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk5MmQ1MWNmY2Q1OWM0YzhlNmI0ZGU1YjJiMGUyOTkyMjAxYWFjY2YxMjUyOWUyNzQxNmI5MGNjNmFiZWI2YjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.fNRO4axGcbOvOyK2tLitbTEt3aP8G8xzIlgy9uABA9U
https://private-user-images.githubusercontent.com/17494745/242110164-cf6a21f2-a4bc-49e3-abd5-6350581927bc.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDIxMTAxNjQtY2Y2YTIxZjItYTRiYy00OWUzLWFiZDUtNjM1MDU4MTkyN2JjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU4ZTUzOGU4MmUxMTQwNjU1NWE3MDM3ZTI5YWFjYWU5NTg4NzM5M2Q0OTM4YjcwNzJlNjgzZWQxYTFiOTgwZDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.bwRvec34VcrLvVj5D-4HEM9JxvXYtM87guq4gX_vi0A
https://private-user-images.githubusercontent.com/17494745/242110266-ce8e7874-e7de-411a-8a6c-efdada442aa7.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDIxMTAyNjYtY2U4ZTc4NzQtZTdkZS00MTFhLThhNmMtZWZkYWRhNDQyYWE3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg2OTQ5OTNjOTQyOTc3OWEyNGZjMTQ1YjVjOTYyM2RhOTc4Y2JiZTY2NzY2ZDQ4YThjMmEyYjY0ZTdmYjA4NzcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.HVUONB5MPvc0outFhPO-wnVQWtJUE9y-xzPYtmh1pcc
https://stackoverflow.com/questions/71080354/getting-the-bucket-does-not-allow-acls-errorhttps://stackoverflow.com/questions/71080354/getting-the-bucket-does-not-allow-acls-error
https://patch-diff.githubusercontent.com/YomiPython/imgup#44-getting-our-credentials
https://us-east-1.console.aws.amazon.com/iamv2/home#/security_credentials?section=IAM_credentialshttps://us-east-1.console.aws.amazon.com/iamv2/home#/security_credentials?section=IAM_credentials
https://private-user-images.githubusercontent.com/17494745/242110897-cab8ebd7-70a7-4094-9670-6f6351647c06.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDIxMTA4OTctY2FiOGViZDctNzBhNy00MDk0LTk2NzAtNmY2MzUxNjQ3YzA2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY5Mjc2MDUwMjQ1OGZhNjk5YmJhY2MwZmJkMGY1ZWQ2ZDExMjI1MTg4ZWQ5MjFjZWY0NWQwNmI2YmI1MTI2MTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.LYtL649fX3FAd9FZ4cHdoUn5s01c9hc9vvKSv5tT-K4
https://private-user-images.githubusercontent.com/17494745/242111218-e0333062-f537-4255-be45-0bb61114c156.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDIxMTEyMTgtZTAzMzMwNjItZjUzNy00MjU1LWJlNDUtMGJiNjExMTRjMTU2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRjNDVhNDMwNmM0NGU1YWUxZjBlYTkxMjk4MWU4NDQ1ODczNzY1ZWYxYmQzMDkzOTRiMDM5YTU4MjQ0ZmUyMjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.uhBtrkeDKxLco1KUSelnqSbGmZvYVwjmr9jjXicriRk
https://private-user-images.githubusercontent.com/17494745/242111311-5ef10986-669d-4e8c-838f-0e7b2c0a85c3.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDIxMTEzMTEtNWVmMTA5ODYtNjY5ZC00ZThjLTgzOGYtMGU3YjJjMGE4NWMzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZiZjkxM2YyYzhiNDBhMWExOTA0YzMyYmUyNDQwM2NmZjEwNzAwN2Q5MDVkNTQxNDFkYWQxODI5Y2E5YWI2NzMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.DxPBr7_oZyE_KVg0zIunFzIjZ0Bey1rJOc0eFzVG-eY
https://private-user-images.githubusercontent.com/17494745/242111476-38193267-9070-47ee-9657-b9e968a45e66.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDIxMTE0NzYtMzgxOTMyNjctOTA3MC00N2VlLTk2NTctYjllOTY4YTQ1ZTY2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI1MmVjYWU1ODUyYWFiNzE5NWIyMmJiYzU4NWQ0Y2FlNzhhNmQ3ZjA1MzljMDZiZjViNmE3NmU4NzgwMTIwYzEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.q7JSpjpy95riTgcM1_mszH-Lx2JD_66yi-_KuN3USAg
https://private-user-images.githubusercontent.com/17494745/242111676-fb29a7ff-2610-44fa-bba9-9a8cb79a3187.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDIxMTE2NzYtZmIyOWE3ZmYtMjYxMC00NGZhLWJiYTktOWE4Y2I3OWEzMTg3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZlYWY1OWZmNWJmZDY1YzkzY2VmZjQxY2FhYzUxZmU4ZGZkYzU3MDRlMTJlZjg4NmIyMGE1ZDEzMjg4MDMxMzImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.sQFMZCTjKhRGRrVERKmVr2jclqrzTqfrv0LNDn-cpss
https://patch-diff.githubusercontent.com/YomiPython/imgup#45-changing-view-to-upload-files
https://private-user-images.githubusercontent.com/17494745/242114312-91f72bf2-9efb-4037-9b9a-ea06a25a9414.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDIxMTQzMTItOTFmNzJiZjItOWVmYi00MDM3LTliOWEtZWEwNmEyNWE5NDE0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBmYjlhMjkxYjIxYjFmYmRjMTc0NjM4OGZkZTQ4YjE4MzY1OWJmNDM3YWE3NmQxNzVhYjVjNGFkYjdhODg3MGYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.TpWrimhH2o0vS38avxfaEgn_eGodXNhtHGIfzMPWbOo
https://patch-diff.githubusercontent.com/YomiPython/imgup#5-feedback-on-progress-of-upload
https://private-user-images.githubusercontent.com/17494745/242301897-f5b6d280-bc33-4b74-bb63-76f751291010.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDIzMDE4OTctZjViNmQyODAtYmMzMy00Yjc0LWJiNjMtNzZmNzUxMjkxMDEwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY5N2Q0MTBlMzRhYWU0MGU3M2IwYTA1MzcxM2FkY2M1N2Q4MDhlMmM5YmUyZTYzZTFjMDQ4ZTc2MDVjYWIyMmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.6Y8805ugMa9ToDzHMc30-ktazhccrTEd2F1Cu2qSrcQ
consume_uploaded_entries/3https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html#consume_uploaded_entries/3
https://private-user-images.githubusercontent.com/17494745/242305106-8f1a32d6-496f-407f-8642-097224c07202.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDIzMDUxMDYtOGYxYTMyZDYtNDk2Zi00MDdmLTg2NDItMDk3MjI0YzA3MjAyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFkMDM4M2ZmNjEzMDExN2U2Yjk2MzBhYTIwNmRkN2Q2OTMwZDMxNTgxNzhiYjE1MjQzMmYyOTI2YzY1NDY4NWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.lfRFfY2BS3MLsqw79LIGPG8glOqs3dBLewomUKyzy8w
https://patch-diff.githubusercontent.com/YomiPython/imgup#6-unique-file-names
cidhttps://github.com/dwyl/cid
CIDhttps://docs.ipfs.tech/concepts/content-addressing/
https://private-user-images.githubusercontent.com/17494745/242337458-f0ee7a56-c297-400e-a7d0-2195f7d77fbb.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDIzMzc0NTgtZjBlZTdhNTYtYzI5Ny00MDBlLWE3ZDAtMjE5NWY3ZDc3ZmJiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIwNDU3M2YxNjAwNjg0ODg5ZGQ4MmYyNzJiZWIwY2Q2MDgwMGE2ZDg1OWZiM2NkYTc2MmQxMmRkZTY0Njk5MzkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.SZdn-W3h9VUCPgwp9iKePe-cMTXCjbr7ZUfT1e_vVBQ
https://private-user-images.githubusercontent.com/17494745/242337566-2511cfe2-610f-4726-8a01-d1397c03bdab.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDIzMzc1NjYtMjUxMWNmZTItNjEwZi00NzI2LThhMDEtZDEzOTdjMDNiZGFiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRkMjA3NmRmMGY2NTM1Y2Y1NGFmMWU2NzUyZTU1Y2IyNzFhNDVkZDY0YmU5MWM4NDYyMGVjZTdlZWNhYzc1ZDQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.W7BxZ1ZQBCm6bGzpD6WIwsbuAlo-ttkraX2hNLAtFWk
https://patch-diff.githubusercontent.com/YomiPython/imgup#7-resizingcompressing-files
https://private-user-images.githubusercontent.com/17494745/242736344-bd61d716-8a4e-445f-a643-8f5d13a00510.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDI3MzYzNDQtYmQ2MWQ3MTYtOGE0ZS00NDVmLWE2NDMtOGY1ZDEzYTAwNTEwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMzZWJlMmQxOTU0NDhjOTZlYmRiZjdkOTUwNTM2NWRlYTNlODUyODgwY2JkYTI1ZmIyM2RmYmVjNWFmMWUwMTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.W0_7zDBdg-hpOYKUSQrm2ba2uRr35o_haNVOa6CSP-I
https://patch-diff.githubusercontent.com/YomiPython/imgup#71-installing-aws-cli-and-aws-sam-cli
AWS SAMhttps://aws.amazon.com/serverless/sam/
S3https://aws.amazon.com/s3/
Lambda Functionhttps://aws.amazon.com/lambda/
https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/prerequisites.htmlhttps://docs.aws.amazon.com/serverless-application-model/latest/developerguide/prerequisites.html
https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.htmlhttps://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/prerequisites.html#prerequisites-configure-credentialshttps://docs.aws.amazon.com/serverless-application-model/latest/developerguide/prerequisites.html#prerequisites-configure-credentials
https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.htmlhttps://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html
https://patch-diff.githubusercontent.com/YomiPython/imgup#72-creating-a-new-aws-sam-project
7.4 Deploying our AWS SAM projecthttps://patch-diff.githubusercontent.com/YomiPython/imgup#74-deploying-our-aws-sam-project
https://patch-diff.githubusercontent.com/YomiPython/imgup#73-changing-the-aws-sam-project-files
https://patch-diff.githubusercontent.com/YomiPython/imgup#731-implementing-the-srcindexjs-handler
sharphttps://github.com/lovell/sharp
https://sharp.pixelplumbing.com/install#aws-lambdahttps://sharp.pixelplumbing.com/install#aws-lambda
https://patch-diff.githubusercontent.com/YomiPython/imgup#74-deploying-our-aws-sam-project
https://patch-diff.githubusercontent.com/YomiPython/imgup#75-testing-the-deployed-sam-project-in-aws-console
https://console.aws.amazon.com/cloudformation/homehttps://console.aws.amazon.com/cloudformation/home
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.htmlhttps://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html
https://private-user-images.githubusercontent.com/17494745/242864320-58c7789b-b463-4804-9854-6330ddff59d2.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDI4NjQzMjAtNThjNzc4OWItYjQ2My00ODA0LTk4NTQtNjMzMGRkZmY1OWQyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE5OTk2OWJiZmI1ODkyY2I1MDFlNWVlNWE3MTllMDIxNjBiMjFiOThlMzQ0MjVjYjQ1MThkMTkyMzM3YzAyYzMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.xMehFWQUOSp0ZdEg3nxWO4BsYIgXG4VjK1ISEGLvrZI
4.3.1 Changing the bucket permissionshttps://patch-diff.githubusercontent.com/YomiPython/imgup#431-changing-the-bucket-permissions
https://console.aws.amazon.com/lambda/homehttps://console.aws.amazon.com/lambda/home
https://patch-diff.githubusercontent.com/YomiPython/imgup#751-what-if-i-want-to-make-changes-to-the-function
https://console.aws.amazon.com/cloudformation/homehttps://console.aws.amazon.com/cloudformation/home
https://private-user-images.githubusercontent.com/17494745/242864021-b7f5ec06-ba6a-4387-8453-1eb95c637586.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDI4NjQwMjEtYjdmNWVjMDYtYmE2YS00Mzg3LTg0NTMtMWViOTVjNjM3NTg2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTcyNTkwNzIwZDk1MGZlOGMwYzU5ZGI1MjU5YjE1Y2MwZTQ0NzdjMDljOGEwZjNjNDEwZjM4ZmVmZmIwNDkyZDImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.0wSGYC_tHA2pKzUtPsVUTXf9dP1c4tQCd1KdeJV2nz0
https://patch-diff.githubusercontent.com/YomiPython/imgup#76-refactoring-the-phoenix-app-to-use-image-compression
https://patch-diff.githubusercontent.com/YomiPython/imgup#77-run-it
https://private-user-images.githubusercontent.com/17494745/242872454-74f27733-402d-4597-bd33-f6f6663eb802.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNDI4NzI0NTQtNzRmMjc3MzMtNDAyZC00NTk3LWJkMzMtZjZmNjY2M2ViODAyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIzYWQ3NGJhZDMxNzFmZDUzNWMyZDdiYzZkZmEyMzA0ZjAxZjBjNjE4ODhiNGRiMmFkNmQ3OGRjMDRlZjliMGMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.iwewt2wiSEJw0TA7-_Hv3UYrNP7HWQ2Gkh43zbHogaM
https://patch-diff.githubusercontent.com/YomiPython/imgup#8-a-note-when-deploying-online
https://repost.aws/knowledge-center/s3-empty-bucket-lifecycle-rulehttps://repost.aws/knowledge-center/s3-empty-bucket-lifecycle-rule
https://patch-diff.githubusercontent.com/YomiPython/imgup#9-uploading-files-without-javascript
api.mdhttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/api.md
https://patch-diff.githubusercontent.com/YomiPython/imgup#91-creating-a-new-liveview
allow_upload/3https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html#allow_upload/3
consume_uploaded_entryhttps://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html#consume_uploaded_entry/3
api.mdhttps://patch-diff.githubusercontent.com/YomiPython/imgup/blob/main/api.md
https://patch-diff.githubusercontent.com/YomiPython/imgup#92-adding-our-view
https://private-user-images.githubusercontent.com/17494745/252427840-fdf7a8cd-c981-47a6-b1d6-f262daac072e.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjkyMzc2OTgsIm5iZiI6MTc2OTIzNzM5OCwicGF0aCI6Ii8xNzQ5NDc0NS8yNTI0Mjc4NDAtZmRmN2E4Y2QtYzk4MS00N2E2LWIxZDYtZjI2MmRhYWMwNzJlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTI0VDA2NDk1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk2NDhkMGVmYWI5YWE2YTQ3M2VlMTM5ZjA0NzI3ODRiOTMwYzYyNGQxOWFjZGYyNjcwZjY1NTQ1NDVhY2YyMDUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.ppATMwtCTaiQjPyEZCmi_QGCiDmEl6AVUC7DYQM-Skg
https://shankardevy.com/code/phoenix-live-reload/https://shankardevy.com/code/phoenix-live-reload/
https://patch-diff.githubusercontent.com/YomiPython/imgup#please-star-the-repo-️
imgup.fly.dev/https://imgup.fly.dev/
Readme https://patch-diff.githubusercontent.com/YomiPython/imgup#readme-ov-file
Please reload this pagehttps://patch-diff.githubusercontent.com/YomiPython/imgup
Activityhttps://patch-diff.githubusercontent.com/YomiPython/imgup/activity
Custom propertieshttps://patch-diff.githubusercontent.com/YomiPython/imgup/custom-properties
0 starshttps://patch-diff.githubusercontent.com/YomiPython/imgup/stargazers
0 watchinghttps://patch-diff.githubusercontent.com/YomiPython/imgup/watchers
0 forkshttps://patch-diff.githubusercontent.com/YomiPython/imgup/forks
Report repository https://patch-diff.githubusercontent.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2FYomiPython%2Fimgup&report=YomiPython+%28user%29
Releaseshttps://patch-diff.githubusercontent.com/YomiPython/imgup/releases
Packages 0https://patch-diff.githubusercontent.com/orgs/YomiPython/packages?repo_name=imgup
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.