Comments (5)
Sure, you can call get_upload_params
with 3 post params:
POST /s3direct/get_upload_params
type=video/quicktime
filename=filename.mov
dest=s3DirectDestinationFromSettings
Which returns all of the fields required to post directly to S3:
{
"policy":"generated-policy",
"acl":"public-read",
"signature":"JeEUf7TNFv5qOk3NmKAZaeIRZbk=",
"form_action":"https://s3-eu-west-1.amazonaws.com/my-bucket",
"key":"files/filename.mov",
"Content-Type":"video/quicktime",
"AWSAccessKeyId":"my-aws-key",
"success_action_status":"201"
}
You can then post the file directly:
POST https://s3-eu-west-1.amazonaws.com/my-bucket
policy=generated-policy
acl=public-read
signature=JeEUf7TNFv5qOk3NmKAZaeIRZbk=
key=files/filename.mov
Content-Type=video/quicktime
AWSAccessKeyId=my-aws-key
success_action_status=201
file=binary
from django-s3direct.
+1
from django-s3direct.
i have this code right now
content_type = "image/JPEG"
key = 'uploads/filename.jpg'
acl = 'public-read'
bucket = None
params_raw = create_upload_data(content_type,key,acl,bucket)
params = { 'policy': params_raw['policy'],'acl':acl,'signature':params_raw['signature'],'key':params_raw['key'],'Content-Type':params_raw['Content-Type'],'AWSAccessKeyId':params_raw['AWSAccessKeyId'],'success_action_status':params_raw['success_action_status'],'file': binary_data}
r = requests.post(params_raw['form_action'],data=params,files=dict(foo='bar'))
return JsonResponse({'request':str(r.text)},safe=False)
but for some reason I am getting back
{"request": "\nInvalidArgument
Bucket POST must contain a field named 'key'. If it is specified, please check the order of the fields.keyA68024822D18802EqCwAGDupGKUViTrwXYrKHhDdOWJzq1oWpjz+q/yrWzVPLvrmty3JgZEVdHyrs/8NeagWNZQ409s="}
whats the reason for this? sorry to bug you I know this really isn't in the scope for this. Thanks for the great add on and all the help!
from django-s3direct.
Problem was that dictionaries aren't ordered in python you must use an ordered dictionary.
from django-s3direct.
Sure, you can call
get_upload_params
with 3 post params:POST /s3direct/get_upload_params type=video/quicktime filename=filename.mov dest=s3DirectDestinationFromSettings
Which returns all of the fields required to post directly to S3:
{ "policy":"generated-policy", "acl":"public-read", "signature":"JeEUf7TNFv5qOk3NmKAZaeIRZbk=", "form_action":"https://s3-eu-west-1.amazonaws.com/my-bucket", "key":"files/filename.mov", "Content-Type":"video/quicktime", "AWSAccessKeyId":"my-aws-key", "success_action_status":"201" }You can then post the file directly:
POST https://s3-eu-west-1.amazonaws.com/my-bucket policy=generated-policy acl=public-read signature=JeEUf7TNFv5qOk3NmKAZaeIRZbk= key=files/filename.mov Content-Type=video/quicktime AWSAccessKeyId=my-aws-key success_action_status=201 file=binary
@bradleyg Can you update this to the latest version as it have changed since then? I am trying to use this as an API along with React JS frontend but I am not sure the requests I need to make. If you update it I'll submit a PR to the documentation adding how to use with React / Front end JS lib
from django-s3direct.
Related Issues (20)
- Is transfer acceleration supported?
- File inputs overlap with labels in multiple fields forms
- media files not accessible after added the AWS_S3_ENDPOINT_URL
- Add a way to mock s3 for development HOT 4
- [Violation] 'DOMNodeInserted' consider using MutationObserver HOT 1
- Closing out, if this is still an issue feel free to reopen.
- FIle upload works in Admin panel but not through ModelForm
- How Could I Attach MetaData to the S3 Object (file) being Uploaded? HOT 1
- File input doesn't show up HOT 4
- presigned url
- document.body doesn't exist yet when calling oberver.observe HOT 2
- x-amz-content-sha256 not in SignedHeaders
- File Widget not showing in admin panel HOT 3
- Admin upload not displaying in Django 3.2 for versions 2+ HOT 3
- s3direct should validate the path of the uploading file matches the server-generated key on server side
- Please allows to paste image from clipboard to file input in Django Admin
- Is there a way to separate the displayed filename and key value?
- Quick Yes/No Question: Does this package require enabling ACLs on the bucket?
- there is no way to know if error when uploading a file
- Still maintained?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from django-s3direct.