[英]Upload files to Digital Ocean Spaces with Next.js and AWS S3
我正在尝试使用 Next.js 和 AWS S3 制作文件上传器(到 Digital Ocean Spaces)。
一切正常,但如果我在 Next.js 配置文件中设置我的 Digital Ocean Spaces env 变量,它会失败。 我不知道为什么。 这是我的代码:
import aws from 'aws-sdk';
import formidable from 'formidable-serverless';
import fs from 'fs';
import config from '../../config';
// export const config = {
// api: {
// bodyParser: false
// }
// };
export default async (req, res) => {
const s3 = new aws.S3({
endpoint: new aws.Endpoint('sfo3.digitaloceanspaces.com'),
accessKeyId: config.NEXT_PUBLIC_ACCESS_KEY_ID,
secretAccessKey: config.NEXT_PUBLIC_SECRET_KEY,
region: 'sfo3'
});
const form = new formidable.IncomingForm();
form.parse(req, async (err, fields, files) => {
if (err) return res.status(500);
const file = fs.readFileSync(files.file.path);
s3.upload({
Bucket: config.NEXT_PUBLIC_BUCKET,
ACL: 'public-read',
Key: 'inserir-url',
Body: file,
ContentType: 'image/jpeg'
})
.send((err, data) => {
if (err) {
console.log('err', err);
return res.status(500);
}
return res.json({
url: data.Location
});
});
});
};
创建一个.env
文件并在其中定义环境变量。
完成后,只需将config.NEXT_PUBLIC_*
替换为process.env.NEXT_PUBLIC_*
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.