上传到S3,Javascript&的签名网址宝途

时间:2014-02-13 14:17:51

标签: javascript python amazon-s3

我正在尝试使用从django api获取的签名URL将文件从Javascript上传到Amazon AWS,我在Boto的帮助下签名。这是我在python中的一行:

url = conn.generate_url(300, 'PUT', settings.AWS_VIDEO_BUCKET, key, headers={'Content-Length': '19448423'}, force_http = True )

使用从中生成的URL,我可以使用CURL发布到S3,如下所示:

curl -v --request PUT --upload-file video.mp4 "http://some_signed_url"

什么不起作用,是使用此URL通过Javascript将文件PUT到Amazon AWS。使用代理进行调试会显示管道错误,而如果出现问题,CURL会向我提供常规的Amazon Access Denied XML。这是我的javascript代码(文件是JS File对象):

var file = e.originalEvent.dataTransfer.files[0];
var fd = new FormData();    
fd.append( 'file', file );

$.ajax({
  url: 'signed_url',
  data: fd,
  processData: false,
  contentType: false,
  cache: false,
  type: 'PUT',
  success: function(data){
    console.log("success");
  },
  error: function(data){
    console.log(data.responseText);
  }
});

任何想法从哪里开始?也许我没有在签名过程中包含所有必需的标题,或者FormData不是正确的方法。

0 个答案:

没有答案