nextJS:使用AWS S3异步getInitialProps()?

问题描述 投票:0回答:1

我正在尝试在nextJS项目的异步getInitialProps()函数中运行一个s3.getObject(),但是我不能因为它喜欢找出如何将准备好的结果返回给他们的方法作为一个对象(getInitialProps()和nextJS的SSR正常工作需要此对象。)>

这里是代码:

static async getInitialProps({ query }) {
  const AWS = require('aws-sdk');
  const s3 = new AWS.S3({
    credentials: {
      accessKeyId: KEY
      secretAccessKey: KEY
    }
  });

  // The id from the route (e.g. /img/abc123987)
  let filename = query.id;

  const params = {
    Bucket: BUCKETNAME
    Key: KEYDEFAULTS + '/' + filename
  };

  const res = await s3.getObject(params, (err, data) => {
    if (err) throw err;
    let imgData = 'data:image/jpeg;base64,' + data.Body.toString('base64');
    return imgData;
  });

  return ...
}

想法是从S3中获取图像,并将其作为base64代码返回(只是为了清除问题)。

我正在尝试在nextJS项目的async getInitialProps()函数中运行一个s3.getObject(),但是我对此一无所知,因此想出了如何将结果准备好的方法。 ..

javascript node.js reactjs amazon-s3 next.js
1个回答
0
投票

根据您的代码s3.getObject,可使用回调。您需要等待回调被调用。

© www.soinside.com 2019 - 2024. All rights reserved.