[英]NodeJs AWS-SDK s3.upload upload function not throwing error as expected
我正在使用以下代碼將文件上傳到 s3
const AWS = require('aws-sdk'); // v2.712.0
AWS.config.update({ region: process.env.AWS_REGION });
async function upload(params)
{
try
{
await s3.putObject(params).promise();
}
catch(error)
{
console.log(error);
}
}
const params = {...};// set params
upload(params)
它在正確設置憑據時起作用。 但如果它們丟失,錯誤CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1
將在幾分鍾后拋出。
我的問題是:
我曾嘗試查看文檔並在httpOptions
配置中設置較低的timeout
值(如幾秒鍾),但沒有成功。
任何幫助表示贊賞。 謝謝。
您需要await
最后一行的 function 調用以確保調用完成(成功或記錄錯誤),例如
await upload(params);
或者,您可以使用 promise 構造,例如
upload(params)
.then(data => { console.log('done', data); })
// .catch(err => { console.log('error', err); })
最后一行已被注釋掉,因為upload()
function 已經在內部捕獲並記錄錯誤。 就個人而言,我會在這里進行錯誤處理。 或者,如果整個流程如示例所示那樣小,我會直接調用s3.putObject()
function:
const AWS = require('aws-sdk');
AWS.config.update({ region: process.env.AWS_REGION });
const params = {...};
s3.putObject(params).promise()
.then(data => { console.log('done', data); })
.catch(err => { console.log('error', err); });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.