fromjpeg')) { copy($sourcefile, $destfile); $return = array('filesize' => filesize($destfile), 'width' => $src_width, 'height' => $src_height); return $return; } $src_scale = $src_width / $src_height; $des_scale = $forcedwidth / $forcedheight; if ($src_width <= $forcedwidth && $src_height <= $forcedheight) { $des_width = $src_width; $des_height = $src_height; } elseif ($src_scale >= $des_scale) { $des_width = ($src_width >= $forcedwidth) ? $forcedwidth : $src_width; $des_height = $des_width / $src_scale; $des_height = ($des_height >= $forcedheight) ? $forcedheight : $des_height; } else { $des_height = ($src_height >= $forcedheight) ? $forcedheight : $src_height; $des_width = $des_height * $src_scale; $des_width = ($des_width >= $forcedwidth) ? $forcedwidth : $des_width; } $des_width = ceil($des_width); $des_height = ceil($des_height); switch ($getimgsize['mime']) { case 'image/jpeg': $img_src = imagecreatefromjpeg($sourcefile); !$img_src && $img_src = imagecreatefromgif($sourcefile); break; case 'image/gif': $img_src = imagecreatefromgif($sourcefile); !$img_src && $img_src = imagecreatefromjpeg($sourcefile); break; case 'image/png': $img_src = imagecreatefrompng($sourcefile); break; case 'image/wbmp': $img_src = imagecreatefromwbmp($sourcefile); break; default : return $return; } if (!$img_src) return $return; $img_dst = imagecreatetruecolor($des_width, $des_height); imagefill($img_dst, 0, 0, 0xFFFFFF); imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $des_width, $des_height, $src_width, $src_height); $tmppath = isset($conf['tmp_path']) ? $conf['tmp_path'] : ini_get('upload_tmp_dir') . '/'; '/' == $tmppath AND $tmppath = './tmp/'; $tmpfile = $tmppath . md5($destfile) . '.tmp'; switch ($destext) { case 'jpg': imagejpeg($img_dst, $tmpfile, 75); break; case 'jpeg': imagejpeg($img_dst, $tmpfile, 75); break; case 'gif': imagegif($img_dst, $tmpfile); break; case 'png': imagepng($img_dst, $tmpfile); break; } $r = array('filesize' => filesize($tmpfile), 'width' => $des_width, 'height' => $des_height);; copy($tmpfile, $destfile); is_file($tmpfile) && unlink($tmpfile); imagedestroy($img_dst); return $r; } function well_image_clip($sourcefile, $destfile, $clipx, $clipy, $clipwidth, $clipheight, $getimgsize = '') { global $conf; empty($getimgsize) AND $getimgsize = getimagesize($sourcefile); if (empty($getimgsize)) { return 0; } else { $imgwidth = $getimgsize[0]; $imgheight = $getimgsize[1]; if (0 == $imgwidth || 0 == $imgheight) { return 0; } } if (!function_exists('imagecreatefromjpeg')) { copy($sourcefile, $destfile); return filesize($destfile); } switch ($getimgsize[2]) { case 1 : $imgcolor = imagecreatefromgif($sourcefile); break; case 2 : $imgcolor = imagecreatefromjpeg($sourcefile); break; case 3 : $imgcolor = imagecreatefrompng($sourcefile); break; case 15: $imgcolor = imagecreatefromwbmp($sourcefile); break; case 18: $imgcolor = imagecreatefromwebp($sourcefile); break; } if (!$imgcolor) return 0; $img_dst = imagecreatetruecolor($clipwidth, $clipheight); imagefill($img_dst, 0, 0, 0xFFFFFF); imagecopyresampled($img_dst, $imgcolor, 0, 0, $clipx, $clipy, $imgwidth, $imgheight, $imgwidth, $imgheight); $tmppath = isset($conf['tmp_path']) ? $conf['tmp_path'] : ini_get('upload_tmp_dir') . '/'; '/' == $tmppath AND $tmppath = './tmp/'; $tmpfile = $tmppath . md5($destfile) . '.tmp'; imagejpeg($img_dst, $tmpfile, 75); $n = filesize($tmpfile); copy($tmpfile, $destfile); is_file($tmpfile) && unlink($tmpfile); return $n; } function well_image_ext($filename) { return strtolower(substr(strrchr($filename, '.'), 1)); } ?>EdgeOne 第一季度产品动态|边缘安全、边缘媒体板块重磅能力上线,掌上小程序正式发布
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

EdgeOne 第一季度产品动态|边缘安全、边缘媒体板块重磅能力上线,掌上小程序正式发布

网站源码admin3浏览0评论

EdgeOne 第一季度产品动态|边缘安全、边缘媒体板块重磅能力上线,掌上小程序正式发布

EdgeOne 始终坚持聆听用户之声,持续进行产品升级迭代,钻研先进技术方向。接下来将为您重点讲解本季度 EdgeOne 在边缘安全、边缘媒体两个板块推出的创新能力,以及正式上线的掌上小程序能力。

边缘安全

防护漏洞新挑战:安全策略配置繁琐,难以保持一致

在安全策略的配置过程中,运维人员常常需要在多个系统中手动设置规则,这不仅效率低下,还容易出错。尤其是在使用多家 CDN 服务时,各个平台的安全规则难以统一,增加了管理的复杂性和出错的风险。此外,缺乏可视化的安全规则展示和版本管理手段,使得运维人员在排查问题和调整策略时面临困难。

自定义规则和托管规则序列化配置读写接口:提升跨平台策略自动化管理效率

为了解决这些问题,EdgeOne 新增了自定义规则和托管规则的批量管理功能。用户可以通过标准化的接口一次性读取和编辑所有安全策略,大大提高了跨平台策略自动化管理效率。新接口支持复杂的规则表达,用户可以更方便地定义和获取所需的安全规则

此外,安全规则的修改过程也变得更加简单清晰,新接口与旧版 API 保持兼容,支持现有业务平滑升级;同时支持与 Terraform 等 IaC(基础设施即代码)平台及 CI/CD(持续集成/持续交付)流水线集成,将 EdgeOne 安全策略(自定义规则和托管规则)配置纳入自动化部署和版本管控流程

通过这一功能,运维人员可以使用脚本或自动化工具批量管理安全策略,大幅减少人工操作次数,降低配置错误率。在多 CDN 并行使用场景下,可以基于同一套导出的规则配置快速同步到各平台,确保安全策略的一致性,避免因平台差异导致的防护漏洞

边缘媒体

OTT、社交媒体场景痛点:存储资源浪费,媒体文件处理效率低

在 OTT 和社交媒体等场景中,用户在存储视频时存在自定义文件存储路径需求,而离线处理媒体文件时则可能浪费存储资源,转码过程也耗时较长。为了解决这一问题,EdgeOne 的即时视频处理支持将 VOD 专业版作为源站。

即时视频处理支持 VOD 专业版作为源站:优化媒体文件处理效率与成本

用户使用即时媒体处理功能时,可直接选择 VOD 专业版存储功能作为视频源站,支持用户自定义文件存储路径,同时使用即时媒体处理能力,满足用户灵活存储和按需处理视频内容,可帮助降低存储成本,并提高播放设备视频处理适配度

即时视频处理扩展支持 VOD 专业版作为源站,实现云平台内部对象存储、VOD 标准版和 VOD 专业版 3 种源站类型视频均支持使用即时视频处理功能。这一功能面向诉求自定义路径管理方式的点播存储用户,提供在媒体加速分发阶段即时按需处理音视频文件的功能,从而大幅优化媒体文件处理效率与成本

掌上小程序

控制台管理难题:无法随时随地操作,灵活性不足

用户以往接入 EdgeOne 后,只能通过 PC 浏览器登录至 EdgeOne 控制台进行管理,如果只是想做一些轻量化的操作,比如查看流量、停用域名服务或者购买流量包,无法随时随地进行操作

掌上小程序控制台:随时监控服务状态

为了解决这一问题,EdgeOne 正式推出了腾讯云助手小程序,用户可以随时随地查看主要业务数据、套餐使用情况,并进行续费或增购流量包。在紧急情况下,用户还可以直接在小程序中停用或启用站点和域名,无需登录 PC 版

小程序支持查看流量概览,实时掌握每日流量、带宽、请求数及防护命中次数的变化趋势。并能够帮助您快捷管理域名,站点列表和域名列表展示可查看相关生效状态,支持快速启用/停用接入的站点、域名。此外,套餐、流量生效状态和到期时间,可随时随地查看,可快捷对套餐包续期、购买各类加量包补充用量

通过掌上小程序助手,用户可更快捷、方便地监控站点的使用用量情况,并且根据实际使用需求补充流量包、续期套餐等操作,进一步方便用户多渠道监控、管理站点在 EdgeOne 内的服务状态

EdgeOne 将持续优化产品功能,为用户提供更加稳定、安全和高效的服务,通过不断的技术迭代和改进,为您的业务保驾护航。

发布评论

评论列表(0)

  1. 暂无评论