0
我有一個問題(使用csrf)使用POST執行直接上傳到S3。如何通過POST繞過CRFSMIDDLEWARE錯誤到Amazon S3?
下面是代碼:
<form action="https://mymediaurl/" method="post" enctype="multipart/form-data">
<input type="hidden" name="key" value="uploads/${filename}">
<input type="hidden" name="AWSAccessKeyId" value="{{ access_key }}">
<input type="hidden" name="acl" value="private">
<input type="hidden" name="success_action_redirect" value="http://localhost/">
<input type="hidden" name="policy" value="{{ policy }}">
<input type="hidden" name="signature" value="{{ signature }}">
<input type="hidden" name="Content-Type" value="image/jpeg">
<!-- Include any additional input fields here -->
File to upload to S3:
<input name="file" type="file">
<br>
<input type="submit" value="Upload File to S3">
</form>
以下是錯誤:
<form action="https://mymediaurl/" method="post" enctype="multipart/form-data">
<div style='display:none;'><input type='hidden' id='csrfmiddlewaretoken' name='csrfmiddlewaretoken' value='123412341234' /></div>
<div style='display:none;'><input type='hidden' id='csrfmiddlewaretoken' name='csrfmiddlewaretoken' value='123412341234' /></div>
<input type="hidden" name="key" value="uploads/${filename}">
<input type="hidden" name="AWSAccessKeyId" value="ASFDFDSF">
<input type="hidden" name="acl" value="private">
<input type="hidden" name="success_action_redirect" value="http://localhost/">
<input type="hidden" name="policy" value="asdhfkajewhlfawe">
<input type="hidden" name="signature" value="asdfasdfasdf">
<input type="hidden" name="Content-Type" value="image/jpeg">
<!-- Include any additional input fields here -->
File to upload to S3:
<input name="file" type="file">
<br>
<input type="submit" value="Upload File to S3">
</form>
我曾嘗試加入csrfmiddlewaretoken我的政策:
包括捷克斯洛伐克<Code>AccessDenied</Code>
<Message>
Invalid according to Policy: Extra input fields: csrfmiddlewaretoken
</Message>
源代碼文件,但這不起作用。有沒有人遇到這個問題,並找到解決方案?我搜索了高和低,但似乎無法找到這個具體問題的答案。
運行Django 1.3.1這個項目,如果該事項..
爲什麼不使用s3boto存儲或django-storage與AWS有很好的集成?這樣,您可以將AWS密鑰等設置爲設置文件,而不必以任何形式對其進行處理 – karthikr
@karthikr感謝您的答覆。我現在實際上使用s3boto,但我想嘗試跳過本地存儲並將這些文件直接發送到s3。該文件都在200 + MB附近,我不想打我的服務器。 – Lonoshea
確保您的政策正確格式化了「csrfmiddlewaretoken」?具體來說,我想到這裏提到的'$':https://forums.aws.amazon.com/message.jspa?messageID=188006 – Christopher