|Project Name||Stars||Downloads||Repos Using This||Packages Using This||Most Recent Commit||Total Releases||Latest Release||Open Issues||License||Language|
|Transfer.sh||14,370||2||12 days ago||26||June 06, 2023||31||mit||Go|
|Easy and fast file sharing from the command-line.|
|Shrine||3,095||255||52||15 days ago||53||June 14, 2021||11||mit||Ruby|
|File Attachment toolkit for Ruby applications|
|Tableflow||1,354||3 days ago||15||September 06, 2023||23||other||Go|
|The open source CSV importer|
|S4cmd||1,249||7||9 months ago||5||August 13, 2018||107||apache-2.0||Python|
|Super S3 command line tool|
|React component that renders an <input type="file"/> and automatically uploads to an S3 bucket|
|S3_direct_upload||648||5 years ago||114||mit||Ruby|
|Direct Upload to Amazon S3 With CORS|
|Django S3direct||602||76||1||a year ago||78||June 17, 2022||33||mit||Python|
|Directly upload files to S3 compatible services with Django.|
|Uploads files to s3 after complete|
|gulp plugin to publish files to amazon s3|
This is a simple Python/django demo of using the excellent jQuery File Upload to upload large files directly to S3 using browser uploads to S3 using HTML POST and S3 CORS. I largely followed the instruction in this Ruby example, but I thought other people may want to see the Python/django example.
To run the example on your computer, do something like the following:
git clone <repo url> /tmp/s3upload cd /tmp/s3upload virtualenv .venv source .venv/bin/activate pip install -r requirements.txt export PROJECT_ROOT=/tmp/s3upload export DJANGO_SECRET=<my secret> export AWS_ACCESS_KEY_ID=<my amazon key ID> export AWS_SECRET_ACCESS_KEY=<my amazon secret key> export AWS_S3_BUCKET_URL=<bucket url> python manage.py runserver
Naturally you should fill in the values in angle brackets with real values.
AWS_S3_BUCKET_URL is the canonical URL of your bucket, for a bucket named
foo in US East it would be
Your bucket will need to have a CORS policy set. Follow the instructions here to set a CORS policy. For real work, you'd like to have a policy confined to your origin domain and perhaps other conditions. For development, a suitable policy could be:
<CORSConfiguration> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <AllowedMethod>POST</AllowedMethod> <AllowedHeader>*</AllowedHeader> </CORSRule> </CORSConfiguration>
This is all you need to get the example working. I think the code is very straightforward, but for further explanation on what's going on I suggest you read the Ruby example linked above.
@aknin by the way, contact me if you have any questions.