lua-webp

  • 设置webP自适应

    #centos
    yum -y install libwebp-devel libwebp-tools
    function file_exists(name) --检查文件是否存在
        local f = io.open(name, "r")
        if f ~= nil then io.close(f) return true else return false end
      end
    
      local tmpPath = '/temp_webp/'; -- webp文件相对路径
      local tmp = ngx.var.document_root .. tmpPath; -- webp文件绝对路径
    
      local originalFile = ngx.var.request_filename; -- 原文件地址
      -- /usr/local/openresty/temp_webp/123126381726adas.webp
      local tmpFile = tmp .. ngx.md5(originalFile) .. '.webp'; -- webp文件地址(绝对路径)
      -- /temp_webp/123126381726adas.webp
      local tmpPathFile = tmpPath .. ngx.md5(originalFile) .. '.webp'; -- webp文件路径(相对路径),后续返回
    
      if file_exists (tmpFile) then -- 判断是否有webp文件,有就直接输出
          return ngx.exec(tmpPathFile);
      end
    
      if not file_exists(originalFile) then -- 原文件不存在
          return ngx.exit(404);
      end
    
      -- 转换原图片到 webp 格式
      executeCmd = "cwebp -q 80 " .. originalFile  .. " -o " .. tmpFile
      os.execute(executeCmd);
    
      if file_exists(tmpFile) then -- 如果新文件存在(转换成功)
         return  ngx.exec(tmpPathFile) -- 返回webp文件
      else
      -- --------------------- 
         return  ngx.exit(404)
      end

1 条评论