图片上传阿里云

随着手机摄像头像素变大,很多图片都超过5兆,所以阿里云默认的nginx最大上传5兆,不够使用了。所以需要重新设置nginx上传图片最大值。修改文件nginx.conf(我们的是/usr/local/nginx/conf/nginx.conf 不同的系统版本文件位置不同)。

http {这里增加一行代码:client_max_body_size 50M; # 添加这一行具体多大自己控制。若要上传视频,需要设置的更大。我见到一个网站一个视频都要800多兆。

配置:

复制代码
const OSSURL = 'https://test.oss-cn-hangzhou.aliyuncs.com';
const OSS = require('ali-oss');
const ossHZ = new OSS({
    region: 'oss-cn-hangzhou',
    accessKeyId: FspConstant.ACCESS_KEY_ID,
    accessKeySecret: FspConstant.ACCESS_KEY_SECRET,
    bucket: 'bucket节点名',
});

核心上传代码很简单:

复制代码
await ossHZ.putStream(filename, readStream);

上传具体代码:

复制代码
ImageTool.uploadImage = async function(filename, fileExt, readStream, convertedPath, originalPath) {
    try {
        await ossHZ.putStream(filename, readStream);
        // 删除临时转换文件
        if(convertedPath && fs.existsSync(convertedPath)){
            fs.unlinkSync(convertedPath);
        }
        if(fs.existsSync(originalPath)){
            fs.unlinkSync(originalPath);
        }
        return {
            code: 200,
            data: {
                data: {
                    url: OSSURL + filename,
                    // src: urlPath,
                    originalFormat: fileExt
                }
            }
        };
    } catch (error) {
        // 删除临时转换文件
        if(convertedPath && fs.existsSync(convertedPath)){
            fs.unlinkSync(convertedPath);
        }
        if(originalPath && fs.existsSync(originalPath)){
            fs.unlinkSync(originalPath);
        }
        console.error('上传失败:', error);
        throw msgCode[39522]('上传');
    }
};

调用代码:

复制代码
    // 获取文件扩展名
    const fileExt = path.extname(ctx.req.file.originalname).toLowerCase();
    let convertedPath = null;    
            // 支持的格式,直接上传原文件
        const readStream = fs.createReadStream(ctx.req.file.path);
        let arr = ctx.req.file.path.split('/');
        let filename = '/img/' + arr[arr.length - 1];
        return ImageTool.uploadImage(filename, fileExt, readStream, null, ctx.req.file.path);
相关推荐
翼龙云_cloud23 分钟前
亚马逊云渠道商:AWS RDS备份恢复实战
服务器·云计算·aws
PM老周32 分钟前
2026年常用瀑布管理工具有哪些?
阿里云·云计算·团队开发·产品经理·个人开发
翼龙云_cloud36 分钟前
亚马逊云渠道商:AWS RDS数据库如何应用?
数据库·云计算·aws
qq_297574679 小时前
【实战教程】SpringBoot 集成阿里云短信服务实现验证码发送
spring boot·后端·阿里云
珠海西格电力科技10 小时前
微电网系统架构设计:并网/孤岛双模式运行与控制策略
网络·人工智能·物联网·系统架构·云计算·智慧城市
阿里云云原生18 小时前
探秘 AgentRun丨动态下发+权限隔离,重构 AI Agent 安全体系
人工智能·安全·阿里云·重构·agentrun
云布道师20 小时前
【云故事探索】NO.19:阿里云×闪剪智能:AI原生重塑视频创作
人工智能·阿里云·ai-native
打小就很皮...21 小时前
Base64 上传到阿里云 OSS
阿里云·base64·oss
主机哥哥21 小时前
阿里云OpenClaw极简部署教程,打造专属AI助手!
人工智能·阿里云·云计算
2401_8658548821 小时前
阿里云主要提供哪些云服务?
阿里云·云计算