使用awssum 0.6.1
三次检查访问密钥ID,访问密钥和帐户ID。
向存储桶中的每个人授予权限。
根据s3服务器时间检查了本地计算机时间。
我使用的代码直接从awssum的示例文件夹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);
});
最佳答案
这里是AwsSum的Andy作者。
AwsSum v0.6.x中的S3签名存在一些已知问题,但在更高版本中已解决。当前版本(截至2012-08-16)为v0.8.0,适合您的工作。
如果可能,请升级并重试。 :) 非常感谢。