作者:澤塵
創(chuàng)新互聯(lián)建站:從2013年成立為各行業(yè)開拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為數(shù)千家公司企業(yè)提供了專業(yè)的網(wǎng)站設(shè)計制作、做網(wǎng)站、網(wǎng)頁設(shè)計和網(wǎng)站推廣服務(wù), 定制開發(fā)由設(shè)計師親自精心設(shè)計,設(shè)計的效果完全按照客戶的要求,并適當?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對手,根據(jù)客戶的實際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。
隨著具有不同屏幕尺寸和分辨率設(shè)備的爆炸式增長,開發(fā)人員經(jīng)常需要提供各種尺寸的圖像,從而確保良好的用戶體驗。目前比較常見的做法是預先為一份圖像存放多份具有不同尺寸的副本,在前端根據(jù)用戶設(shè)備的 media 信息來請求特定的圖像副本。
預先為一份圖像存放多份具有不同尺寸副本的行為,經(jīng)常是通過 阿里云函數(shù)計算 FC 以及阿里云對象存儲 OSS 兩大產(chǎn)品實現(xiàn)的。用戶事先為 FC 中的函數(shù)設(shè)置對象存儲觸發(fā)器,當在存儲桶中創(chuàng)建了新對象(即 putObject 行為,此處指在 OSS bucket 中存放了圖像),通過 OSS 觸發(fā)器來觸發(fā)函數(shù)對剛剛存放的圖像進行處理,處理成不同尺寸的副本后,將這些副本存放進 OSS bucket。
上述方法的特點是預先處理,如果要處理的圖像尺寸較多,那么當圖像數(shù)量非常大的時候,會占用很多存儲空間。假設(shè)要處理的圖像尺寸數(shù)目為 x、圖像數(shù)量為 y、平均每份圖像的大小為 z,那么要占用的存儲空間為 x y z。
動態(tài)調(diào)整圖像大小
為了避免無用的圖像占用存儲空間,可以使用動態(tài)調(diào)整圖像大小的方法。在 OSS bucket 中預先只為每份圖像存放一個副本,當前端根據(jù)用戶設(shè)備的 media 信息來請求特定尺寸圖像副本時,再生成相關(guān)圖像。
步驟:
上述方法的特點是:
在 OSS 控制臺 中,創(chuàng)建一個新的 Bucket,讀寫權(quán)限選擇公共讀 (用于本教程示例,可之后更改)。
git clone git@github.com:ChanDaoH/serverless-image-on-the-fly.git
npm install
template.yml
文件中的相關(guān)內(nèi)容:OSS_REGION、OSS_BUCKET_NAME、自定義域名ROSTemplateFormatVersion: '2015-09-01'
Transform: 'Aliyun::Serverless-2018-04-03'
Resources:
serverless-image:
Type: 'Aliyun::Serverless::Service'
Properties:
Description: This is serverless-image service
Policies:
- AliyunOSSFullAccess
image-resize:
Type: 'Aliyun::Serverless::Function'
Properties:
Handler: src/index.handler
Runtime: nodejs10
Timeout: 60
MemorySize: 512
CodeUri: ./
EnvironmentVariables:
OSS_REGION: oss-cn-shanghai # oss region, such as oss-cn-shanghai、oss-cn-hangzhou
OSS_BUCKET_NAME: images-xxx # oss bucket name
Events:
httpTrigger:
Type: HTTP
Properties:
AuthType: ANONYMOUS
Methods:
- GET
- POST
william.functioncompute.com: # domain name
Type: 'Aliyun::Serverless::CustomDomain'
Properties:
Protocol: HTTP
RouteConfig:
routes:
'/*':
ServiceName: serverless-image
FunctionName: image-resize
image.jpg
。https://{OSS_BUCKET_NAME}.{OSS_REGION}.aliyuncs.com/{width}*{height}/image.jpg
。會有如下效果:
width * height
大小的 image.jpg。width * height
命名的目錄,該目錄下有 image.jpg。我們通過 FC + OSS 搭建了一個實時按需圖像處理服務(wù),該服務(wù)擁有以下特點:
“阿里巴巴云原生技術(shù)圈關(guān)注微服務(wù)、Serverless、容器、Service Mesh 等技術(shù)領(lǐng)域、聚焦云原生流行技術(shù)趨勢、云原生大規(guī)模的落地實踐,做最懂云原生開發(fā)者的技術(shù)圈。”
分享文章:利用FC+OSS快速搭建Serverless實時按需圖像處理服務(wù)
轉(zhuǎn)載源于:http://bm7419.com/article34/pcgcpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、網(wǎng)站收錄、網(wǎng)站建設(shè)、網(wǎng)站維護、企業(yè)建站、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)