When I try a simple spaces upload using the aws -sdk I keep getting the error: ‘InvalidAccessKeyId: null’,

here is the code with my secret key redacted:

const AWS = require('aws-sdk’);
const fs = require('fs’);

const publicKey = 'AKIAIEPGV5ULZ34YOZPA’;
const secretKey = 'redacted’;

AWS.config.update({region: 'nyc3’, accessKeyId: publicKey, secretAccessKey: secretKey});

let spacesEndpoint = new AWS.Endpoint('nyc3.digitaloceanspaces.com’);
let s3 = new AWS.S3({
endpoint: spacesEndpoint,
region: 'nyc3’,
params: {
Bucket: 'packix’,
ContentType: 'application/x-debian-package’,
ACL: 'private’

let testParams = {
Key: 'packixtestdeb’

let debStream = fs.createReadStream('test.deb’);
testParams['Body’] = debStream;

.on('httpUploadProgress’, function(evt) { console.log(evt); })
.send(function(err, data) { console.log(err, data) });

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

1 answer

Try setting the accessKeyId and secretAccessKey in the constructor of the S3 object.

const s3 = new AWS.S3({
    endpoint: process.env.SPACES_ENDPOINT,
    accessKeyId: process.env.AWS_ACCESS_KEY_ID,
    secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY

The above is working for me.

As a sidenote, I stumbled across this question when I accidentally created a new access token rather than access key.

Submit an Answer