我正在尝试在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(),但是我对此一无所知,因此想出了如何将结果准备好的方法。 ..
根据您的代码s3.getObject
,可使用回调。您需要等待回调被调用。