jpillora / grunt-aws

A Grunt interface into the Amazon Node.JS SDK
171 stars 44 forks source link

0.5.1 S3 fails with 'Cannot set property 'Timestamp' of undefined' #36

Closed lukebussey closed 9 years ago

lukebussey commented 9 years ago

0.5.1 was working and after upgrading to 0.5.1 I receive the following error:

Running "s3:dist" (s3) task
Retrieving list of existing objects prefixed with 'favicon.ico'...
Warning: Cannot set property 'Timestamp' of undefined Use --force to continue.

I've deleted my node_modules folder and reinstalled everything, but to no avail.

jpillora commented 9 years ago

Damn, so the upgrade isn't backwards compatible? Try setting your version to 0.5.0

On Wednesday, May 20, 2015, Nimi Wariboko Jr. notifications@github.com wrote:

Same here

— Reply to this email directly or view it on GitHub https://github.com/jpillora/grunt-aws/issues/36#issuecomment-103641414.

jpillora commented 9 years ago

@lukebussey can you paste in your Gruntfile? @vepasto can you please look into this?

vepasto commented 9 years ago

I wasn't able to reproduce this problem. Waiting for gruntfile.js from @lukebussey.

lukebussey commented 9 years ago

Here's exactly what I'm using as a config in my Gruntfile.js

        s3: {
            options: {
                accessKeyId: '<%= credentials.aws.accessKeyId %>',
                secretAccessKey: '<%= credentials.aws.secretAccessKey %>',
                bucket: '<%= config.s3BucketName%>'
            },
            dist: {
                cwd: '<%= config.dist %>',
                src: '**'
            }
        }

Here's the output of running the task with 0.5.0, upgrading to 0.5.1 and running the task again:

$ grunt s3
Running "s3:dist" (s3) task
>> No change 'favicon.ico'
>> Put 'bower_components/bootstrap-sass-official/assets/fonts/bootstrap/glyphicons-halflings-regular.woff'
>> Put 'media/fonts/icons.woff'
>> Put 'bower_components/bootstrap-sass-official/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2'
>> Put 3 files

Done, without errors.

$ npm install grunt-aws@0.5.1
grunt-aws@0.5.1 node_modules/grunt-aws
├── async@0.2.10
├── mime@1.2.11
├── lodash@1.3.1
└── aws-sdk@2.1.29 (xmlbuilder@0.4.2, xml2js@0.2.8, sax@0.5.3)

$ grunt s3
Running "s3:dist" (s3) task
Warning: Put 'favicon.ico' failed...
TypeError: Cannot set property 'Timestamp' of undefined
  Use --force to continue.

Aborted due to warnings.
vepasto commented 9 years ago

Thanks @lukebussey!

I managed to locate error to S3.getBucketWebsite request in enableWebHosting task. It only appears when I run the s3 task with signatureVersion set as v2.

@lukebussey, please try to set signatureVersion to v4

lukebussey commented 9 years ago

That works, thanks. Config is now:

        s3: {
            options: {
                accessKeyId: '<%= credentials.aws.accessKeyId %>',
                secretAccessKey: '<%= credentials.aws.secretAccessKey %>',
                bucket: '<%= config.s3BucketName%>',
                signatureVersion: 'v4'
            },
            dist: {
                cwd: '<%= config.dist %>',
                src: '**'
            }
        }

Can you release a 0.5.2 with the default fixed?

jpillora commented 9 years ago

Thanks for fixing this guys, will release as soon as I get to my computer

On Thursday, May 21, 2015, Luke Bussey notifications@github.com wrote:

That works, thanks. Config is now:

    s3: {
        options: {
            accessKeyId: '<%= credentials.aws.accessKeyId %>',
            secretAccessKey: '<%= credentials.aws.secretAccessKey %>',
            bucket: '<%= config.s3BucketName%>',
            signatureVersion: 'v4'
        },
        dist: {
            cwd: '<%= config.dist %>',
            src: '**'
        }
    }

Can you release a 0.5.2 with the default fixed?

— Reply to this email directly or view it on GitHub https://github.com/jpillora/grunt-aws/issues/36#issuecomment-104016263.

jpillora commented 9 years ago

merged and published