node aws-sdkでs3にファイルアップ時に、「Missing credentials in config」になります。
[エラー内容] { Error: at Object._errnoException (util.js:1024:11) at _exceptionWithHostPort (util.js:1046:20) at internalConnect (net.js:971:16) at net.js:1065:9 at _combinedTickCallback (internal/process/next_tick.js:131:7) at process._tickDomainCallback (internal/process/next_tick.js:218:9) message: 'Missing credentials in config', code: 'CredentialsError', errno: 'EHOSTUNREACH', syscall: 'connect', port: 80, time: 2018-04-16T09:35:50.924Z, originalError: { message: 'Could not load credentials from any providers', code: 'CredentialsError', errno: 'EHOSTUNREACH', syscall: 'connect', port: 80, time: 2018-04-16T09:35:50.924Z, originalError: { code: 'EHOSTUNREACH', errno: 'EHOSTUNREACH', syscall: 'connect', port: 80 } }
環境変数は間違っていないことは確認済みです。
また別ファイルで呼び出して、その値(public URL)を出しているので、exportとPromiseを使っておりますが、
その2つの書き方も正常に動いております。
調べるとconfigの中が間違っている記事が散見されましたが、
そこを直しても特に変わりはありませんでした。
よろしくお願いいたします。
以下、コードです。
require('dotenv').config({path: '../../.env'}); var AWS = require('aws-sdk'); var s3 = new AWS.S3(); exports.setImg = (imgURL) => { return new Promise ((resolve, reject) => { var myBucket = 'yup.issho'; var accessKey = process.env.AWS_S3_ACCESS_KEY var secretKey = process.env.AWS_S3_SECRET_KEY AWS.config.update({ // accessKeyId: accessKey, // secretAccessKey: secretKey, region: 'ap-northeast-1', credentials: new AWS.Credentials(accessKey, secretKey) }); let params = {Bucket: myBucket, Key: imgURL, Body: 'Hello!'}; // s3.putObject(params,function(err, data) { s3.upload(params,function(err, data) { if (err){ console.log(err); } console.log("Successfully uploaded data"); resolve(data); }); }) }

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/17 02:01
2018/04/17 12:58