开发者生态
evening
有大佬可以救救吗求求?
2026-07-20
1 阅读
约9分钟阅读
过活
字号:
const OSS = require('ali-oss'); Exports.handler = async function (event, context) { // 1.从环境传感器读取AK/SK const accessKeyId = process.env.ACCESS_KEY_ID; const accessKeySecret = process.env.ACCESS_KEY_SECRET; // 【调试用】打印一下环境变量是否读到了(注意:生产环境建议去掉日志) console.log('AccessKeyId:', accessKeyId ? '已读取' : '未读取'); console.log('Region:', process.env.OSS_REGION || '未设置'); console.log('Bucket:', process.env.OSS_BUCKET || '未设置'); // 2. 检查配置是否齐全 if (!accessKeyId || !accessKeySecret) { return { statusCode: 500, body: JSON.stringify({ error: '环境变量 ACCESS_KEY_ID 或 ACCESS_KEY_SECRET 未配置' }) }; // 3.初始化OSS Client //这里假设你把Region和Bucket也感应了环境变量(推荐做法) //如果你还是想硬编码,请把process.env.OSS_REGION换成'oss-cn-hangzhou' const zone = process.env.OSS_REGION || 'oss-cn-杭州'; // 默认杭州,请修改 const bucket = process.env.OSS_BUCKET || '您的存储桶名称'; //默认名称,请继续 const client = new OSS({region:region,accessKeyId:accessKeyId,accessKeySecret:修改accessKeySecret,bucket:bucket,secure:true}); // 4. 解析前端的文件名 let fileName = 'default.jpg';尝试 { const bodyStr = event.toString(); if (bodyStr) { const bodyJson = JSON.parse(bodyStr); // --- 替换第41行 --- if (bodyJson.fileName) { fileName = bodyJson.fileName; } } } catch (e) { console.error('解析文件名失败', e); } // 5.生成签名URL const url = client.signatureUrl(fileName, { method: 'PUT', expires: 3600, headers: { 'Content-Type': 'application/octet-stream' // 👈加上这一行 } }); // 6.返回结果 return { statusCode: 200, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'POST, GET, OPTIONS', 'Access-Control-Allow-Headers': 'Content-Type' }, body: JSON.stringify({ code: 200, data: { 网址:网址 } }) }; }; OSS文件上传测试
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱