亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 s3 對象數據放入數組 - 節點

將 s3 對象數據放入數組 - 節點

白板的微信 2022-05-14 15:18:44
我正在嘗試從 S3 對象中獲取數據并將其放入數組中。我計劃通過這個數組映射并在網格/列表中的 React 前端顯示數據。不過,我正在為嵌套函數而苦苦掙扎,因此我將不勝感激。const dataFromS3 = async (bucket, file) => {let lines = [];const options = {    Bucket: bucket,    Key: file  };s3.getObject(options, (err, data) => {if (err) {  console.log(err);} else {  let objectData = data.Body.toString('utf-8');  lines.push(objectData);  console.log(lines);  return lines;}  });};格式化有點奇怪,但這是我從 s3 獲取數據的功能。我想以數組的形式獲取此函數的輸出并將其傳遞給我正在測試的“/”路由:app.get('/', async (req, res, next) => {try {    let apolloKey = await dataFromS3(s3Bucket, apolloKeywords);    res.send(apolloKey);  } catch (err) {    console.log('Error: ', err);  }});似乎s3.getObject函數中的行的返回值需要在第一個函數中返回,以便我可以在 app.get 中訪問它,但經過一些嘗試后我似乎無法做到這一點。如果我在datafromS3()的末尾返回它,那么行中的值將變成一個空數組,并且我找不到返回它的方法。我也嘗試使用此處找到的方法使用 Promise - How to get response from S3 getObject in Node.js? 但我得到一個 TypeError: Converting Circular Structure to JSON ...
查看完整描述

1 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

你需要讓你的 dataFromS3 像 htis 一樣運行。你沒有從中返回任何東西。AWS 還提供了基于 Promise 的功能。


const dataFromS3 = async (bucket, file) => {

  const lines = [];


  const options = {

    "Bucket": bucket,

    "Key": file

  };


  const data = await s3.getObject(options).promise();

  const objectData = data.Body.toString("utf-8");

  lines.push(objectData); // You might need to conversion here using JSON.parse(objectData);

  console.log(lines);

  return lines;

};


查看完整回答
反對 回復 2022-05-14
  • 1 回答
  • 0 關注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號