利用 Aliyun OSS Nginx proxy module 实现OSS 图片处理回写功能

本文介绍了如何利用Aliyun OSS Nginx proxy module结合OSS上传回调功能实现图片处理回写。通过示例代码和步骤,详细阐述了配置环境、构造请求以及回写逻辑,旨在帮助读者理解如何使用该模块实现更高效的大图片处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、主要介绍内容

此篇文章主要利用Aliyun OSS Nginx proxy module 实现OSS 图片处理回写功能,借助OSS Nginx Proxy module 及 OSS 的上传回调功能实现OSS图片处理回写功能,当然文章目的并不在于强调图片处理回写功能,而是借实现一个例子来利用Aliyun OSS Nginx proxy module,对Nginx 及 Nginx lua 感兴趣的同学可以参照本文描述做出更强大的应用出来,本文如能抛砖引玉的作用那就不枉我花时间写此博客了。

2、开始之前

1、开始之前请稍微阅读下对Aliyun OSS Nginx proxy module 的简单介绍

http://blog.youkuaiyun.com/sunrain_chy/article/details/50935681

2、了解下阿里云OSS 上传回调功能

https://help.aliyun.com/document_detail/oss/api-reference/object/Callback.html?spm=5176.docoss/user_guide/manage_object/list_object.6.238.SAPehH

3、参考文章

在开始之前建议阅读本文之前建议阅读以上两篇参考文档
春哥的Nginx教程,会对Nginx 配置文件有很深的理解
http://openresty.org/download/agentzh-nginx-tutorials-zhcn.html
我的另外一篇博客,会更加理解OSS 提供的服务
http://blog.youkuaiyun.com/sunrain_chy/article/details/50804410

3、主要功能及优势

本文主要实现的功能是处理回写,这里以oss图片处理回写为例介绍如何利用阿里云OSS 提供的callback来进行图片回写。现在很多大图片如果每次都要实时处理那会大大降低用户体验(当然可以利用CDN进行缓存),那么可以通过此方法进行处理图回写,每次进行上传请求时带上callback参数让oss通知到本文中实现的nginx服务器,nginx服务器会自动从oss 拉取经过处理的数据然后再回写带oss中,如果确认成功甚至可以将原图删掉只保留处理图,这些都可以依据上传逻辑进行实现。那么肯定会有读者问那费用呢?这个完全不是问题,因为oss按照请求次数收费相当便宜几乎不要钱,而流量费用也不用担心,买一台和OSS同区域的ECS就可以走内网了,内网流量免费。

4、图片处理回写处理逻辑代码

oss_rewrite.lua

local cjson = require("cjson")

local function get_object_data_from_oss_img(src_object, src_style)
    local res = ngx.location.capture("/" .. src_object .. src_style)
    if res.status ~= ngx.HTTP_OK then
        ngx.log(ngx.ERR, "fetch external url data failed, object :", src_object .. src_style, " status:", tostring(res.status))
        return res.status, nil
    end
    return res.status, res.body
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值