使用Next.js和AWS S3上传到数字海洋空间
我正在尝试使用Next.js和AWS S3制作文件上传器(到数字海洋空间)。
一切正常,但是如果我将我的Digital Ocean Spaces Env变量设置为下一个。JS配置文件失败。我不知道为什么。 这是我的代码:
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
});
});
});
};
I'm trying to make a files uploader (to Digital Ocean Spaces) using Next.js and AWS S3.
Everything works fine, but if I set my Digital Ocean Spaces env variables in the Next.js config file it fails. I have no idea why.
Here's my code:
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
});
});
});
};
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
创建一个
.env
文件,并在此处定义您的环境变量。完成后,只需替换
config.next_public _*
用process.env.next_public _*
Create a
.env
file and define your environment variables there.Once done, simply replace
config.NEXT_PUBLIC_*
withprocess.env.NEXT_PUBLIC_*