主頁 >  其他 > CDN邊緣JavaScript敏捷交付實踐

CDN邊緣JavaScript敏捷交付實踐

2021-10-29 08:28:42 其他

本文由百度智能云-視頻云-內容分發加速技術架構師——高巖 在百度開發者沙龍線上分享的演講內容整理而成,內容從CDN應用Serverless的意義出發,詳細介紹EdgeJS Serverless服務,

文/ 高巖
整理/ 百度開發者中心
視頻回放:https://developer.baidu.com/live.html?id=11

本次分享的主題是:CDN邊緣JavaScript敏捷交付實踐,內容主要分為以下三個方面:

  • CDN應用Serverless的意義
  • EdgeJS Severless服務
  • 沉浸式CDN編程體驗

01 CDN應用Serverless的意義

CDN基本介紹
在這里插入圖片描述

CDN含義:
是指一組分布在不同地理位置的服務器,協同作業以提供互聯網內容的快速交付,

CDN服務已得到不斷普及,如今,大多數web流量都通過CDN提供服務,幾乎所有的門戶網站、常用的視頻 APP(例如,愛奇藝、抖音)都會用 CDN 架構實作更加快速的內容分發,讓用戶更快地看到視頻內容,帶來更好的用戶體驗,

這是因為 CDN 允許快速傳輸、加載互聯網內容所需要的資源,以門戶網站為例,我們需要加載 HTML 頁面、JavaScript、檔案 css 等資源;而視頻網站則需要加載縮略圖、視頻檔案,

CDN 還可幫助保護網站免受某些常見的惡意攻擊,例如分布式拒絕服務(DDOS)攻擊,

使用CDN優勢:

  1. 縮短網站加載時間
    通過將內容分發到訪問者附近的CDN服務器(以及其他優化措施),訪問者體驗到更快的頁面加載時間,由于訪問者更傾向于離開加載緩慢的網站,CDN 可以降低跳出率并增加人們在該網站上停留的時間,換句話說,網站速度越快,用戶停留的時間越長,

  2. 減少帶寬成本
    網站托管的帶寬消耗成本是網站的主要費用,通過快取和其他優化,CDN 能夠減少源服務器必須提供的資料量,從而降低網站所有者的托管成本,

  3. 增加內容可用性和冗余
    大流量或硬體故障可能會擾亂正常的網站功能,由于CDN具有分布式特性,因此與許多源服務器相比,CDN 可以處理更多流量并更好地承受硬體故障,

  4. 改善網站安全性
    CDN 可以通過提供鑒權、安全證書的改進以及其他優化措施來提高安全性,

vCDN的發展

在這里插入圖片描述

早在2009年,伯克利曾針對當時興起的云計算做過評論,并提出了以下6個潛在的優點:

  1. (理論上)無限可用的計算資源,可在資源池中實作任意的伸縮,
  2. 用戶再也不需要承擔服務器運維的作業和責任,
  3. 服務的按需付費成為可能,
  4. 超大型資料中心的使用成本顯著降低,
  5. 通過可視化資源管理,運維操作的難度大大降低,
  6. 分時復用,物理硬體的利用率大大提高,

基于云計算的理念,可以實作一個虛擬化CDN(vCDN), 即可在專有、裸金屬、虛擬化或基于容器的基礎設施上運行CDN,vCDN作為云上的一個應用,是CDN和云緊密結合的產品,其主要功能特性包括:
硬體虛擬化:虛擬化基礎架構使軟體和硬體功能得以分解,服務器運維大大簡化,
低延遲:在共享基礎設施上運行CDN功能,可以更快的調起其他應用,比如可以實時進行圖片處理,
彈性伸縮:可以按需使用CDN,在流量高峰和低峰,進行自動的彈性擴容和縮容,

但是云計算技術發展到今天,虛擬化并不能解決所有的問題,
在對性能有特別高要求的場景下,面臨的主要難點如下:

  • 虛擬機/容器,構建業務應用運維成本較高,
  • 不能做到按需付費,仍然需要獨占虛擬機,
  • 開發復雜,需要很多其它的依賴,在開發業務的程序中,需要資料庫、物件存盤等框架,需要自己掌控運維和使用情況,開發難度較高,

Serverless介紹與特點

在這里插入圖片描述

為了解決上述問題,亞馬遜的 AWS 在 2015 年推出了 lambda 服務,提出了Cloud Function的概念,引起了業界對于 Serverless 的關注廣泛,

Serverless 主要包含 Faas、Baas 兩種形態,其中,Faas 將 Function 作為服務,Baas 將后端服務作為服務,

在應用了 vCDN 后,也可以用 Baas 的方式運行服務,Serverless 旨在讓開發人員不需要再關注服務器,云會幫自動實作服務器的運維和伸縮,

具體而言,Serverless 具有以下特點:

  1. 計算的無狀態化,服務的儲存和計算完全分開部署的,開發者只需要關心計算的實作,可以通過其它云上的獨立服務進行儲存,容易進行遷移和擴縮容,
  2. 資源透明化的,無需要再關心服務器、虛擬機、容器需要多少資源、帶寬、磁盤空間,可以通過呼叫函式在平臺內實作資源的自動管理,
  3. 按需計費,根據呼叫時長、呼叫次數進行計費,目前,vCDN 可以為客戶提供 Baas 服務,如果用戶需要更通用的函式計算產品,推薦使用百度云的 CFC,可以配置 CDN 的觸發器,

CDN應用Serverless的意義

在這里插入圖片描述

早在 2018年,云管理公司 RightScale 開展的一項調查顯示,Serverless 是增長最快的公共云服務,
據統計,AWS 上超過一半的用戶已經在使用 Serverless 服務,Serverless 一直在高速發展,呈現出越來越大的影響力,
Serverless 將無處不在,CDN也必須擁抱Serverless理念,提供邊緣可編程能力,使用戶可以在控制臺上通過 API 設定代碼,形成編程能力,更有效地控制 CDN,

在 CDN 業務中實踐 Serverless 理念可以提供敏捷交付的能力,具有以下優勢:

  • 編程能力 對于剛接觸CDN的客戶來說,可編程能力,即便不理解CDN的具體運作流程,也能快速撰寫出可用的代碼,
  • 敏捷交付 對于CDN研發人員,serverless節省了他們部署和運維的時間,讓他們能夠更加專注于解決和優化應用本身的問題,
  • 場景下沉結合編程能力,可以和其他場景更方便的結合在一起,
  • 邊緣計算在CDN的邊緣,可以進行更加自由的計算,節省端上處理的時間和延遲,

02 EdgeJS Serverless服務

EdgeJS Serverless服務目標

在這里插入圖片描述

Serverless 的目標是使用戶可以更容易地撰寫和部署代碼,而無需關注底層結構,盡管目前的 CDN 業務可以實作按需付費,但是仍然不夠靈活,

為此,我們推出了 EdgeJS Serverless 服務,該服務在百度智能云 CDN 上使用JavaScript 語言去提供的一種可編程的配置能力,實作高并發、低成本的敏捷交付,使 CDN 能夠體現出 serverless 的思想,進行靠攏或者是計劃,

該服務具有以下特點:

  • 嵌入式 JavaScript runtime,而非獨立的 runtime,出于對性能的考慮,在支持 JS 標準庫的同事,避免了獨立runtime 帶來的冷啟動時間,
  • 提供請求物件 request,可以在代碼中進行隨意更改,
  • 提供對外訪問能力,

作為一種 Serverless 服務,EdgeJS 需要實作用戶隔離、具備較高的性能,能夠動態編碼,具體而言,EdgeJS 具有以下特性:

  1. 動態編碼,
  2. 即時編譯,即用戶代碼在邊緣區編譯之后,可以被快取,無需進行重復編譯,理論上大大提升了執行的效率,
  3. 風險隔離,即嚴格隔離不同用戶的代碼,為用戶可以使用的資源設定最高上限,

EdgeJS Serverless服務的特性
加粗樣式
EdgeJS致力于讓CDN更易用,向serverless服務能力邁進,所以EdgeJS的定位一開始就是完全免費,在CDN按需使用的帶寬費用之外,不會產生額外的費用,

在降低CDN使用門檻的初衷下,必須還得保持CDN的高可用、低延遲、就近服務的能力,

EdgeJS的設計,是完全嵌入到CDN接入層的JavaScriptruntime,無需冷啟動時間,沒有性能損失,并支持標準ES6語法的JavaScriptAPI,各種特性陸續補齊中,

在這里插入圖片描述

而且相比傳統交付,開發上線至少周級別的交付周期,EdgeJS真正能做到秒級交付,用戶在控制臺配置上代碼,就可以秒級生效,當然建議在正式發布前,先使用預發布功能來灰度驗證,EdgeJS,可以根據請求進行各種特征處理,這極大豐富了CDN接入的場景,

為了更好地配合 CDN 業務,EdgeJS 具有以下特性:

  • 使用 EdgeJS 在邊緣進行計算(如一些特殊的鑒權等不能快取的動態需求),將預計算任務部署在邊緣設備上,大大減輕源站的壓力
  • 做到秒級交付,使用戶在控制臺上配置代碼,秒級生效,
  • 根據請求進行各種特征處理,極大豐富 CDN接入場景(包括不限于跨域訪問、重定向、訪問控制、單請求限速、自定義鑒權、m3u8改寫、請求改寫、A/BTest自定義錯誤頁面等,

除此之外,EdgeJS還可以利用fetch等能力,和遠端進行協同,包括不限于遠程鑒權、云服務協同和請求畫像打點上傳,這些能力已經遠超CDN的傳統場景,向serverless服務能力靠攏,

在CDN龐大的算力加持下,可以減輕源站的性能壓力和支出,而且,當增加了新的特征或者增加了新的計算方法,可以隨時修改JavaScript代碼,進行實時控制,

03 沉浸式CDN編程

url改寫與復雜檔案名改寫

在這里插入圖片描述

CDN 控制臺本身支持一些 URL 改寫的基本功能,但這些預定義的功能靈活性較低,我們可以通過 EdgeJS 根據用戶的要求確定配置,EdgeJS 使用標準的 JS 語法,需要用戶建立一個請求物件 request,
如上圖所示,我們首先將 URL 中的大寫字母轉成小寫,接著我們將請求的 variables 引數改成小寫,variable 映射的是 UNIX 的變數,而這的規則完全一致的,

EdgeJS 支持復雜的檔案名改寫,這里涉及到三種情況:
(1)引數 attname 存在且不為空字串
(2)引數 attname 存在且為空字串
(3)引數 attname 不存在,

回源鑒權頭
在這里插入圖片描述

在一些物件存盤場景下,我們可以通過 EdgeJs 構建回源鑒權頭 authorization,首先生成一個亂數,獲取當前時間,并生成請求 URL,接著,我們利用以上三者根據 crypto 演算法生成鑒權頭,
我們可以通過請求的 headersIn 特性獲取請求頭,有些特殊的請求頭只能存在一份,如果重復則會被忽略(例如,host、connection,詳見官網),此外,重復的 Cookie 的請求頭會回傳所有的重復部分,并以分號分隔開來,如果我們想要獲取所有的請求頭,我們需要使用 rawHeadersIn 特性,如果請求頭有多個,則會輸出陣列,

r.headersIn{}
請求頭物件,可寫Foo請求頭可以使用r.headersIn.foo或者r.headersIn[‘Foo’]來訪問
“Host”, “Connection”, “If-Modified-Since”, “If-Unmodified-Since”, “If-Match”, “If-None-Match”, “User-Agent”, “Referer”,
“Content-Length”, “Content-Range”, “Content-Type”, “Range”, “If-Range”, “Transfer-Encoding”, “TE”, “Expect”,
“Upgrade”, “Accept-Encoding”, “Via”, “Authorization”, “Keep-Alive”, “X-Real-IP”, “Accept”, “Accept-Language”, “Depth”,
“Destination”, “Overwrite”, "Date"這些請求頭只能有一個,重復的會被忽略

重復的“Cookie”請求頭,會回傳所有的重復部分,并以分號(;)分隔,
重復的其他請求頭,會回傳所有的重復部分,并以逗號(,)分隔,
r.headersIn.foo =‘foo’,賦值會覆寫所有的重復部分,

r.headersIn [‘Foo’]= [‘a’, ‘b’],賦值陣列,會產生兩個重復的請求頭:
Foo:a和Foo:b

r.rawHeadersIn{}
請求頭KV Array,只讀,
比如請求頭Host:localhost;Foo: bar ;foo: bar2

r.rawHeadersIn輸出類似于[‘Host’, ‘localhost’], [‘Foo’, ‘bar’], [‘foo’, ‘bar2’]
獲取所有的請求頭foor.rawHeadersIn.filter(v=>v[0].toLowerCase()
== ‘foo’).map(v=>v[1])
輸出[‘bar’, ‘bar2’]

檔案名改寫
在這里插入圖片描述

EdgeJS Serverless 服務通過請求的 headersOut 特性可以實作檔案名改寫、跨域訪問、設定相同的回應頭等功能,
如上圖所示,我們可以使用請求引數 filename 命名下載檔案,使用請求頭 Origin 賦值給跨域回應頭 Access-Control-A,在設定相同的回應頭時,我們可以通過賦值陣列,產生重復的回應頭,

r.headersOut{}回應頭物件,可寫Foo回應頭可以使用r.headersOut.foo或者r.headersOut[‘Foo’]來訪問,
“Server”, “Date”, “Content-Length”, “Content-Encoding”,
“Location”, “Refresh”, “Last-Modified”,
“Content-Range”, “Accept-Ranges”,
“WWW-Authenticate”, “Expires”, “E-Tag”, “ETag”, “Content-Type”, “X-Override-Charset”,
“Cache-Control”, “Link”, “Age”,
“Retry-After”,這些回應頭只能有一個,重復的會被忽略

重復的"Set-Cookie"回應頭,會回傳一個陣列,例如,r.headersOut[‘Set-Cookie’].forEach
(element=> console.log(element));

重復的其他回應頭,會回傳所有的重復部分,并以逗號(,)分隔
r.headersOut.foo =‘foo’,賦值會覆寫所有的重復部分,

r.headersOut [‘Foo’]= [‘a’, ‘b’],賦值陣列,會產生兩個重復的回應頭:
Foo:a和Foo:b

r.rawHeadersOut{}
回應頭KV Array,只讀
用法類似于r.rawHeadersIn{}

自定義錯誤頁面

在這里插入圖片描述

我們可以使用 EdgeJS 實作自定義的錯誤頁面,當源站回傳 404 時,可以重定向到一個對用戶友好的頁面,
如上圖所示,我們通過 respHeader 回呼實作上述功能,類似地,我們可以通過 respHeader 實作 A/B 測驗,
如果源站回傳了特殊頭 a,可以命中一個升級的邏輯,重定向到一個應用升級的頁面,

IP黑名單
在這里插入圖片描述

EdgeJS 支持通過百度自有的庫提供一些常用的訪問控制功能:
(1)IP 黑名單,如果客戶端地址在 192.168.1.1/32 或 192.168.2.1/24 等ip段內,則回傳 403,
(2)Referer 白名單,如果 referer 不匹配某些通配符的形式,則回傳 403,
(3)UA 黑名單,如果 UA 包含 curl 或 AppleWebKit,則回傳 403,

代碼示例:
r.remoteAddress
客戶端地址,只讀

baidu_utils庫
function ipInCidr(ipv4,cidrs)
引數:
ipv4為點分十進制的ipv4地址,比如’192.168.2.100’
cidrs為CIDR地址串列,比如[‘192.168.1.1/32’,‘192.168.2.1/24’]

使用示例:
if (baidu_utils.ipInCidr (‘192.168.2.100’,[‘192.168.1.1/32’,‘192.168.2.1/24’])) {
r.return(403);
}
function matchWildcard(str,rule)

引數:
str為待匹配的字串,比如’http://www.baidu.com/’
rule為有通配符的字串,比如’http://.baidu.com/

使用示例:
if (baidu_utils.matchWildcard(‘http://www.baidu.com/’, ‘http://.baidu.com/’)
{
r.return(403);
}

鑒權
在這里插入圖片描述

百度云基于 EdgeJS 提供了 B 類防盜鏈等鑒權功能,原始的 URL 包含協議頭 HTTP、域名、檔案名,在加密之后,URL 變成了協議頭、域名、時間戳、MD5 編碼,檔案名,
在上圖的第一段代碼中,CDN 服務器收到請求之后,首先拆分 URL,得到時間戳、MD5 、檔案名,
在第二段代碼中,時間戳的格式并非 Unicode,而是可讀的格式,我們需要進行時間戳格式的轉換,將秘鑰與時間戳、檔案名拼接,并進行 MD5 加密編碼的比對,

子請求
在這里插入圖片描述

CDN本身是一個快取體系,對于hls或者dash來說,其索引檔案中包含的防盜鏈資訊,在用戶請求的時候很可能過期了,所以在用戶請求的m3u8或者mpd的防盜鏈驗證通過之后,需要將這個請求中的防盜鏈資訊改寫到索引檔案內容中,

Fetch

在這里插入圖片描述

Fetch
ngx.fetch(url, [options])
類似于JavaScript原生的Fetch,請求URL,并回傳決議Response物件的Promise,參考Using_Fetch
目前僅支持http協議,重定向需要呼叫者處理
類似于js fetch,options支持body/ headers / method,

ssl選項如下:
ssl_name 指定sni,默認為url中的域名
ssl_verify是否開啟證書校驗,默認開啟

Response
標準的JavaScript內置物件

我們可以通過 EdgeJS Serverless 服務實作 Fetch 功能,請求遠程鑒權服務器,根據遠程服務器的回應進行處理,如果得到非 2xx 狀態碼,則回傳 403 禁止訪問,Fetch 回傳的是一個 Promise 物件,包含類方法,可以將異步的操作變為序列化的操作,只要需要關心業務邏輯,與 Fetch 一同上線的還有 Await、SubtleCrypto 等功能,

以上是老師的全部分享內容,有任何問題可以在討論區提出,
點擊進入獲得更多技術資訊~~

掃描二維碼,備注:音視頻開發,立即加入音視頻開發技術交流群,
在這里插入圖片描述

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/340577.html

標籤:其他

上一篇:使用OpenCV進行消失點檢測(附代碼)

下一篇:Ubuntu20.04 vscode + opencv4教程(2021.10.27完成)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more