Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8936

LamdbaからS3内のファイルを操作したい

$
0
0

LamdbaからS3内を操作するメソッドで、よく使うものをメモ書き。

まずaws-sdkをrequireし、リージョンを指定します。
AWS SDKとは、AWSサービスをプログラムから操作できる開発キットです。

constAWS=require('aws-sdk');consts3=newAWS.S3({'region':'リージョン'});

ファイル作成・更新

ファイルを作成するには、putObjectメソッドを使用します。
S3に'test'というバケットがあり、その配下のsampleフォルダに'sample.json'というJSONファイルを作成します。

exports.handler=async(event)=>{constputData=awaits3.putObject({Bucket:'test',Key:'sample/sample1.json',Body:JSON.stringify({})}).promise()}

Bucket...バケット名
Kye...バッケト以下/ファイル名
Body...JSONファイル内に書きたい内容

実行すると、空のJSONファイルがS3に作成されます。

内容を記載したい場合はBodyのところに適当に入れます。

Body:JSON.stringify({name:'ai',age:20})

実行すると、sample.jsonの中に{"name":"ai","age":20}が追加されているのが確認できます。

ファイル取得

S3のファイルを取得するには、getObjectメソッドを使います。

exports.handler=async(event)=>{constdata=awaits3.getObject({Bucket:'test',Key:'test/sample1.json'}).promise()constobj=JSON.parse(data.Body)console.log(obj.name,obj.age)//ai 20}

先ほどと同様に、取得したいファイルの情報をBucket,Keyに指定します。
JSONをparseしてオブジェクトに変換することで、中身にアクセスすることができます。

ファイル削除

exports.handler=async(event)=>{constdeletes=awaits3.getObject({Bucket:'test',Key:'test/sample1.json'}).promise()}

こちらも同様に削除したいファイルの情報をBucket、Keyに指定します。

実行すると、削除できたことが確認できます。
ちなみに、存在しないファイル名を指定した場合でもエラーにはなりません。
なのでtry~catchで囲み、エラーを出してくれるようにしてあげる必要があります。

exports.handler=async(event)=>{try{constdeletes=awaits3.getObject({Bucket:'test',Key:'sample/sample1XXX.json'}).promise().catch(err=>{thrownewError(err)})}catch(err){console.log(err)}}//実行結果 Error: NoSuchKey: The specified key does not exist.

存在しないファイル名を指定して実行すると、エラーになることが確認できました。

データの一覧を取得する

S3にどんなファイルがあるか分からない時、listObjectsV2メソッドで確認することがきます。

exports.handler=async(event)=>{constparams={'Bucket':'test','Prefix':'sample',}constlists=awaits3.listObjectsV2(params).promise()lists.Contents.forEach((a)=>console.log(a.Key))}

実行すると、sampleフォルダ配下に何があるか確認できました。

実行結果
sample/
sample/sample1.json
sample/sample2.json
sample/sample3.json

Viewing all articles
Browse latest Browse all 8936

Trending Articles