Node.js 使用grunt-aws-s3时出现致命错误

Node.js 使用grunt-aws-s3时出现致命错误,node.js,amazon-web-services,amazon-s3,gruntjs,Node.js,Amazon Web Services,Amazon S3,Gruntjs,我可能没有正确地配置它,就我的一生而言,我就是不知道错误在哪里。我正在使用该软件包,运行时出现以下错误: 显然,某个字符串或数组的某个位置没有被指定预期的值。问题是哪一个?作为测试,我尝试将E:drive(特别是E:\quest)上一个文件夹的内容发送到S3存储桶。grunt文件也位于E:驱动器(E:\s3)上,如下所示: 'use strict'; module.exports = function (grunt) { // Load grunt tasks automatical

我可能没有正确地配置它,就我的一生而言,我就是不知道错误在哪里。我正在使用该软件包,运行时出现以下错误:

显然,某个字符串或数组的某个位置没有被指定预期的值。问题是哪一个?作为测试,我尝试将E:drive(特别是E:\quest)上一个文件夹的内容发送到S3存储桶。grunt文件也位于E:驱动器(E:\s3)上,如下所示:

'use strict';

module.exports = function (grunt) {
    // Load grunt tasks automatically
    require('load-grunt-tasks')(grunt);

    // Define the configuration for all the tasks
    grunt.initConfig({
        aws: grunt.file.readJSON('grunt-aws.json'),
        aws_s3:{
            options: {
                debug:true,
                region:'us-west-1',
                access:'bucket-owner-full-control',
                uploadConcurrency: 5, // 5 simultaneous uploads
                downloadConcurrency: 5, // 5 simultaneous downloads
                differential: true, // Only uploads the files that have changed
                gzipRename: 'ext' // when uploading a gz file, keep the original extension
            },
            backup:{
                options: {
                    accessKeyId: '<%= aws.backup.key %>',
                    secretAccessKey: '<%= aws.backup.secret %>',
                    bucket: '<%= aws.backup.bucket %>'
                },
                files: [
                    {'action':'upload', expand:true, cwd:'../quest', src:['**'], dest:'/quest'}
                ]
            }
        }
    });

    grunt.loadNpmTasks('grunt-aws-s3');

    grunt.registerTask('default', [
        'aws_s3:backup'
    ]);
};
“严格使用”;
module.exports=函数(grunt){
//自动加载grunt任务
要求('load-grunt-tasks')(grunt);
//定义所有任务的配置
grunt.initConfig({
aws:grunt.file.readJSON('grunt-aws.json'),
aws_s3:{
选项:{
是的,
地区:'us-west-1',
访问权限:'bucket-owner-full-control',
uploadConcurrency:5,//5同时上载
downloadConcurrency:5,//5同时下载
differential:true,//仅上载已更改的文件
gzipRename:'ext'//上载gz文件时,保留原始扩展名
},
备份:{
选项:{
accessKeyId:“”,
secretAccessKey:“”,
存储桶:“”
},
档案:[
{'action':'upload',expand:true,cwd:'../quest',src:['**',dest:'/quest'}
]
}
}
});
grunt.loadNpmTasks(“grunt-aws-s3”);
grunt.registerTask('default'[
“aws_s3:备份”
]);
};
我认为这是配置,因为我没有收到任何S3错误,如果它正在通信,我会认为我会有某种通信错误。如果有人能指出我错在哪里,我将非常感激


或者,如果有人有一个适合Grunt的好用的AWS S3模块,我希望知道它的名称。

答案很简单,就是package.json文件中有错误的版本号。出于某种奇怪的原因,我引用了“~0.2”,而我本应该引用最新版本“~0.14”。我告诉过你我拿错了。现在我知道在哪里了。多亏了大家的努力。

。/quest你确定吗?是的,我确定文件在那里。FWIW,我尝试了直接路径“E:/quest/”并得到了相同的结果。那么使用的是什么
aws sdk
version?这是一个好问题,我不知道该软件包使用的是什么版本。NPM页面上没有列出任何外部依赖项,所以我只安装了该包,在grunt文件中设置了配置,并尝试运行它。如果我需要安装外部SDK,这可能会解释错误。我安装了最新版本的aws SDK,但仍然存在相同的错误。我检查了一下,发现grunt-aws-s3附带了必要的sdk。