2012-01-04 135 views
4

我正在尝试使用Node.js获取Amazon S3 Plupload example。不过,到目前为止,我所能得到的是Error #2049。我不确定我做错了什么。我已经上传了crossdomain.xml文件。如何将多个文件直接上传到Amazon S3?

这是我的政策文件和签名:

var crypto = require('crypto'); 

var s3 = {} 
s3.bucket = 'BUCKET'; 
s3.accessKeyId = 'ACCESS_KEY'; 
s3.aws_secret_key = 'SECRET_KEY'; 
s3.policy = JSON.stringify({ 
    'expiration': '2012-10-01T00:00:00Z', 
    'conditions': [ 
     {'bucket': s3.bucket }, 
     {'acl': 'private'}, 
     ['starts-with', '$key', ''], 
     ['starts-with', '$Content-Type', ''], 
     ['starts-with', '$name', ''],  
     ['starts-with', '$Filename', ''], 
     {"success_action_status" : "201"} 
    ]}); 
s3.policy = new Buffer(s3.policy).toString('base64'); 
s3.signature = crypto.createHmac('sha1', s3.aws_secret_key).update(s3.policy).digest('base64'); 

难道我做错了什么?

回答

1

如果我是你,我会使用一个已经可以与Amazon S3交谈的库。自从我写这篇文章以来,我会推荐AwsSum,但其他人也有。

而且看一看的例子,所以你可以看到做什么:

+0

注:AwsSum现在位置为:HTTPS: //github.com/awssum/ - 它现在有一个插件架构,所以S3位于https://github.com/awssum/awssum-amazon-s3/ – chilts 2013-04-05 15:38:42

相关问题