Node.js(Lambda)でS3のファイル存在チェックをする方法
Node.jsでファイル存在確認をするメソッドがないようなので、getObjectメソッドを利用して存在する場合はtrue、存在しない場合はfalseを返すexistFileメソッドを作成します。
const AWS = require('aws-sdk'); | |
const S3 = new AWS.S3({'region':'ap-northeast-1'}); | |
exports.handler = async (event) => { | |
let params = { | |
'Bucket': 'バケット名', | |
'Key': 'hoge/sample.json' | |
} | |
const data = await existFile(params) | |
} | |
async function existFile(params){ | |
let bool = true | |
await S3.getObject(params).promise().catch(e=>{ | |
bool = false | |
}) | |
return bool | |
} |
getObjectメソッドでファイルが存在しない場合はcatchされますので、await-catch句でfalseにします。
JavaではdoesObjectExistメソッドが用意されているようです。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^