使用带有awssum v0.6.1的PutObject时出现403 SignatureDoesNotMatch错误

时间:2012-06-18 19:03:24

标签: node.js amazon-s3

使用awssum 0.6.1

三次检查访问密钥ID,访问密钥和帐户ID。 为存储桶中的每个人提供权限。 根据s3服务器时间检查本地pc时间。

我正在使用的代码直接来自awssum的examples文件夹,put-object.js 例。我正在寻找的是awssum 0.6.1的PutObject方法的工作样本,或确认某人有它工作。关于我的问题的任何其他想法,表示赞赏。

var express = require('express')
  , routes = require('./routes');

var app = module.exports = express.createServer();

var awssum = require('awssum');
var amazon = awssum.load('amazon/amazon');
var S3 = awssum.load('amazon/s3').S3;

var accessKeyId = '-----------------';
var secretAccessKey = '----------------------';
var awsAccountId = '-------------------';

var s3 = new S3({
    accessKeyId : accessKeyId,
    secretAccessKey : secretAccessKey,
     awsAccountId    : awsAccountId,
    region : amazon.US_EAST_1
});

// Configuration

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'ejs');
  app.use(express.bodyParser({ uploadDir: __dirname + '/public/files', keepExtensions: true }));
  app.use(express.limit('5mb'));
  app.use(express.methodOverride());
  app.use(require('stylus').middleware({ src: __dirname + '/public' }));
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});

app.configure('development', function(){
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.configure('production', function(){
  app.use(express.errorHandler());
});

// Routes

app.get('/upload', function(req, res) {

});

app.post('/upload', function (req, res) {
    res.send("true");

    var body = "Hello, World!\n";

    var options = {
        BucketName    : 'FTPSE',
        ObjectName    : 'success',
        ContentLength: Buffer.byteLength(body),
        Body: body
    };

  s3.PutObject(options, function(err, data) {
        console.log(err)
        console.log(data)
    });
});

app.get('/', routes.index);

app.listen(3000, function(){
  console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
});

1 个答案:

答案 0 :(得分:0)

AySum的Andy作者。

AwsSum的v0.6.x中存在S3签名的一些已知问题,但它们在以后的版本中已得到修复。当前版本(截至2012-08-16)是v0.8.0,你可以做的很好。

如果可能,请升级并重试。 :)非常感谢。