AWS - 保存 json 文件到 S3

基于aws 的程序,如果有些数据我们并不经常用到,或者并没有导出到报表的需求,或者并不是业务数据,通常我们存储在 S3, 而不是存储到数据库 (例如 Dynamo)

存储数据到 S3 方法如下:

背景:AWS SDK + NodeJS + Serverless Lambda

1. lambda 中引用 aws sdk

const AWS = require('aws-sdk')
s3: new AWS.S3(),

2. 在lambda 保存数据到 S3

  function save () {
    const random = deps.crypto.randomBytes(24).toString('hex')  //产生位移标识
    const opts = {
      ACL: 'public-read',   //设置资源权限
      Key: util.format('%s/rejected-registrations/%s/%s.json', deps.stage, params.accountId, random),   //资源key
      Body: JSON.stringify(params.customer),  //自问文件类型为json
      CacheControl: 'max-age=0'
    }
    
  const defaultBucket = 'test-internal-' + (deps.stage === 'master' ? 'master' : 'test')  //根据业务获得bucket名称
  opts .Bucket = opts .Bucket || defaultBucket

  return s3.putObject(opts ).promise()  //调用aws sdk s3 API, 保存数据到S3
  }
 
3. 在lambda 的 serverless.yml 文件中添加本 lambda 对 S3 的读写权限

 

 

 
  
 

 

posted @ 2020-02-16 17:10  多吃核桃  阅读(674)  评论(0编辑  收藏  举报