01 方案概述

现在绝大多数客户都有很多非结构化的数据存在 OSS 中,以图片,视频,音频居多。举一个图片处理的场景,现在各种终端种类繁多,不同的终端对图片的格式、分辨率要求也不同,所以一张图片往往会有很多张衍生图,那如果所有的衍生图都存在 OSS 中,那存储的成本会增加,所以就可以通过 OSS Object FC 的方案,在不同的终端请求时,对 OSS 中的原图基于终端的要求做实时处理,然后响应返回,这样 OSS 中只需要存储原图即可。

该方案以图片处理的两类场景为例:

场景一:OSS 中只存原图,用户在请求 URL 中带着期望对图片做何种处理的参数,请求回来的图片是已经基于参数处理好的图片。

场景二:OSS 中只存某种格式的图片,实现无论用户请求时 URL 中是何种格式,都可以正常返回图片。

02 方案优势

  • 不需要所有版本的图片都保存,只需要保存原图即可,可有效优化 OSS 存储成本。
  • 可以灵活实现对 OSS 中的数据做在请求时做扩展业务逻辑的需求,极大减少 OSS 侧定制开发,并且客户可以完全掌控处理图片的逻辑,扩展性极强。比如请求时实时加水印、实时美颜处理、实时裁剪图片、实时截帧等。

03 部署架构

名词解释:

  • OPAP(Object Process Access Point):是在 AP 的能力上,拓展了 FC 功能,通过 OPAP 访问的 GetObject 会触发 FC。其他类型的请求会退化到绑定的 AP。
  • AP(AccessPoint):是 OSS 推出的新的接入点域名;通过该域名访问,有独立的权限控制。假设用户想把一个 bucket 给不同业务方使用,但是想精细控制每一个业务方的权限,可以通过创建多个 AP 给业务方使用。

04 架构说明

该方案的整条链路是非常清晰明确的:

  • 用户请求 CDN 地址展示图片。
  • CDN 没有命中后回源到 OPAP。
  • OPAP 的请求会触发函数计算的函数,在该函数中可以拿到用户请求的 URL 详细信息,然后可由用户自行实现对图片处理的逻辑。
  • 函数中对图片处理完后,将图片返回给 AP。
  • AP 返回给 OSS,由 OSS 响应给 CDN。

整个方案中,CDN 的回源配置,OPAP 的创建,AP 的创建,函数代码的实现需要在产品控制台进行配置,详细步骤参见后续内容。

05 产品介绍

专有网络 VPC(Virtual Private Cloud):是用户基于阿里云创建的自定义私有网络, 不同的专有网络之间二层逻辑隔离,用户可以在自己创建的专有网络内创建和管理云产品实例,比如 ECS、负载均衡、RDS 等。

函数计算 FC(Function Compute):函数计算是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码或镜像。函数计算为您准备好计算资源,弹性地、可靠地运行任务,并提供日志查询、性能监控和报警等功能。

内容分发网络(Content Delivery Network,CDN):是建立并覆盖在承载网上,由不同区域的服务器组成的分布式网络。将源站资源缓存到全国各地的边缘服务器,供用户就近获取,降低源站压力。

阿里云对象存储 OSS(Object Storage Service):是一款海量、安全、低成本、高可靠的云存储服务,可提供 99.9999999999%(12 个 9)的数据持久性,99.995% 的数据可用性。多种存储类型供选择,全面优化存储成本。

云速搭 CADT(Cloud Architect Design Tools):是一款为上云应用提供自助式云架构管理的产品,显著地降低应用云上管理的难度和时间成本。本产品提供丰富的预制应用架构模板,同时也支持自助拖拽方式定义应用云上架构;支持较多阿里云服务的配置和管理。用户可以方便的对云上架构方案的成本、部署、运维、回收进行全生命周期的管理。

06 前置条件

在进行本文操作之前,您需要完成以下准备工作:

1)注册阿里云账号,并完成实名认证。您可以登录阿里云控制台,并前往实名认证页面https://account.console.aliyun.com/v2/#/authc/home查看是否完成实名认证。

2)购买按量付费资源,阿里云账户余额需要大于 100 元。考虑到部署后每小时会产生费用,建议账号内余额或者代金卷金额大于 200 元。您可以登录阿里云控制台,前往账户总览页面https://usercenter2.aliyun.com/home查看账户余额。

3)该最佳实践涉及到使用 Git 下载示例中需要的代码和文件,所以请提前准备好 Git 环境。

4)该最佳实践需要您持有备案过的域名才能正常完成全部操作,请您先准备域名。

07 操作步骤

本实践可通过 CADT 官方模板快速拉起演示环境。

1. 基础环境搭建

2. 获取示例代码和文件

2.1.通过 Git 获取示例代码和文件

3. 配置对象存储 OSS

3.1.创建接入点(AP)

3.2.创建对象 FC 接入点(OPAP)

3.3.创建 RAM 授权

3.4.上传样例图片

4. 配置函数计算 FC

4.1.登录函数计算 FC 控制台

4.2.部署修改图片扩展名代码

4.3.更新 oss sdk 和 pyopenssl

5. 配置 CDN

5.1.添加 CDN域名

5.2.CDN 域名 CNAME 解析

5.3.配置 CDN 域名

6. 场景验证

6.1.转换图片扩展名场景验证

6.2.根据 URL 参数实时变更图片尺寸场景验证

6.3.验证更多场景

7. 一键释放资源

原文链接

本文为阿里云原创内容,未经允许不得转载。

云原生最佳实践系列 7:基于 OSS Object FC 实现非结构化文件实时处理的更多相关文章

  1. “行业客户云原生最佳实践日” 亮相KubeCon上海

    2018年11月13日至15日,由CNCF主办的KubeCon + CloudNativeCon将首次登陆中国上海,这是全球范围内规模最大的Kubernetes和云原生技术盛会. 唯一聚焦客户实践的分 ...

  2. 探索云数据库最佳实践 阿里云开发者大会数据库专场邀你一起Code up!

    盛夏.魔都.科技 三者在一起有什么惊喜? 7月24日,阿里云峰会·上海——开发者大会将在上海世博中心盛大启程,与未来世界的开发者们分享数据库.云原生.开源大数据等领域的技术干货,共同探讨前沿科技趋势, ...

  3. nodejs 实践:express 最佳实践系列

    nodejs 实践:express 最佳实践系列 nodejs 实践:express 最佳实践(一) 项目结构 nodejs 实践:express 最佳实践(二) 中间件 nodejs 实践:expr ...

  4. ​第3届云原生技术实践峰会(CNBPS 2020)重磅开启,“原”力蓄势待发!

    CNBPS 2020将在11月19-21日全新启动!作为国内最有影响力的云原生盛会之一,云原生技术实践峰会(CNBPS)至今已举办三届. 在2019年的CNBPS上,灵雀云CTO陈恺喊出"云 ...

  5. Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt)

    Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt) 作者: Desmond Chen,发布日期: 2014-05- ...

  6. Attention-based Extraction of Structured Information from Street View Imagery:基于注意力的街景图像提取结构化信息

    基于注意力的街景图像提取结构化信息 一种用于真实图像文本提取问题的TensorFlow模型. 该文件夹包含在FSNS数据集数据集上训练新的注意OCR模型所需的代码,以在法国转录街道名称. 您还可以使用 ...

  7. 全网最详细中英文ChatGPT-GPT-4示例文档-从0到1快速入门解析非结构化数据应用——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)

    目录 Introduce 简介 setting 设置 Prompt 提示 Sample response 回复样本 API request 接口请求 python接口请求示例 node.js接口请求示 ...

  8. 基于华为云IOT及无线RFID技术的智慧仓储解决方案最佳实践系列一

    [摘要]仓储管理存在四大细分场景:出入库管理.盘点.分拣和货物跟踪.本系列将介绍利用华为云IOT全栈云服务,端侧采用华为收发分离式RFID解决方案,打造端到端到IOT智慧仓储解决方案的最佳实践. 仓储 ...

  9. 阿里云 CDN 业务基于边缘容器的云原生转型实践

    导读:本文基于边缘容器的阿里云 CDN 云原生实践, 涵盖了边缘容器的背景和趋势,边缘托管集群 ACK Managed Edge K8s(文中简称“Edge@ACK”) 的能力.架构,以及基于边缘容器 ...

  10. 基于AngularJS的前端云组件最佳实践

    AngularJS是google设计和开发的一套前端开发框架,他能帮助开发人员更便捷地进行前端开发.AngularJS是为了克服HTML在构建应用上的不足而设计的,它非常全面且简单易学习,因此Angu ...

随机推荐

  1. PostgreSQL与Java JDBC数据类型对照 源码

    文件:postgresql-42.2.12.jar 类名:org.postgresql.jdbc.TypeInfoCache // basic pg types info: // 0 - type n ...

  2. GID:旷视提出全方位的检测模型知识蒸馏 | CVPR 2021

    论文提出的GID框架能够自动选择可辨别目标用于知识蒸馏,而且综合了feature-based.relation-based和response-based知识,全方位蒸馏,适用于不同的检测框架中.从实验 ...

  3. KingbaseES V8R6 集群中复制槽非活跃状态的可能原因

    背景 此问题环境是一主五备物理集群,其中node1是主节点,node2,3是集群同步节点,node4,5是集群异地异步节点,由于异地和主节点不同网段,网速非常慢. kdts-plus工具纯迁数据,每分 ...

  4. 05 CMMI(Capability Maturity Model Integration)【软件过程与管理】

    CMMI(Capability Maturity Model Integration) CMMI成熟度等级 执行的:过程不可预测,缺乏控制,反应式的 已管理的:项目描绘过程,而且经常是反应式的 已定义 ...

  5. #2-SAT,平面图#洛谷 3209 [HNOI2010] 平面图判定

    题目传送门 分析 首先一张图是平面图的必要条件为 \(m\leq 3*n-6\), 然后考虑到这题的图存在哈密尔顿回路,也就是说非环边因为跨立形成奇环即为无解 那么直接拆点跑2-SAT就可以了 代码 ...

  6. #换根dp#洛谷 2986 [USACO10MAR]Great Cow Gathering G

    题目 分析 处理出所有点到根节点的答案,然后换根依次求最小值 代码 #include <cstdio> #include <cctype> #define rr registe ...

  7. 使用CMake启用RUNPATH特性

    使用CMake,启用RUNPATH特性,可以参考官方帖子. 如下源码来自于上述帖子. CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR) PROJECT(R ...

  8. CMake vs Makefile 如何选择适合你的项目构建工具

    CMake vs Makefile: 如何选择适合你的项目构建工具 在软件开发中,构建(build)是一个非常重要的过程.我们需要将源代码转换为可执行文件或库文件.为了完成此过程,我们通常使用构建工具 ...

  9. JMeter接口性能测试工具

    博客地址:https://blog.csdn.net/lovesoo/article/details/78579547

  10. 微信小程序为什么引入 rpx

    前言 众所周知,px 是一个叫做像素的东西,pixel. 像素是指由图像的小方格组成的,这些小方块都有一个明确的位置和被分配的色彩数值,小方格颜色和位置就决定该图像所呈现出来的样子. 可以将像素视为整 ...