S3 - json регистрирует загрузку файла согласно времени - PullRequest
0 голосов
/ 25 марта 2020

Я хочу загрузить jsonfile на s3 из объекта, созданного в функции узла. Вызванная функция для журнала событий

module.exports.logEvent = async (event, responseHandler) => {

  const obj = {};
  obj.user_agent = event.headers["User-Agent"];
  obj.time = (new Date()).toISOString();
  obj.ip = event.requestContext.identity.sourceIp;

  let currentDate = new Date();
  let year = moment(currentDate).format('YYYY');
  let month = moment(currentDate).format('MMM');
  let date = moment(currentDate).format('DD');
  let hour = moment(currentDate).format('HH');
  let minute = moment(currentDate).format('MM');

   //to create respective directories
  let s3fileName = "cl-phonenumbers-access-logs/" + year + "/" + month + "/" + date + "/" + hour + "/" + minute + '-' + obj.username + '.json';
  fileType = 'json';

  let buffer = new Buffer.from(JSON.stringify(obj));

  try {
    let response = await s3upload.S3uploadJson('my bucket name', s3fileName, buffer, fileType, 'utf-8');
    return responseHandler.createApiResponse(response.statusCode, {
      success: true,
      response,
    });
  } catch (e) {
    //handle exception
  }
}

Эта функция вызывается при s3upload s3upload fun c:

module.exports.S3uploadJson = async (bucketname, key, string, type, bufferType) => {
    console.log('upload func called');
    const bucket = bucketname;
    const filename = key;
    const params = {
        Bucket: bucket,
        Key: filename,
        Body: Buffer.from(string, 'base64')
    };
    try {
        s3.putPromise = util.promisify(s3.putObject);
        let response = await s3.putPromise(params)
        console.log(response);
        return {
            ...response, bucket, filename
        }

    } catch (e) {

        return e;
    }
};

Ошибка: я получаю 403 с отказом в доступе. Что должно быть измененный

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...