OpenStack Keystone 認(rèn)證服務(wù)完整學(xué)習(xí)指南
OpenStack管理摘要本文全面介紹了OpenStack認(rèn)證管理服務(wù)Keystone的核心概念與實(shí)踐操作。首先詳細(xì)解析了Keystone的八大基本概念Domain、User、Group、Project、Role、Service、Endpoint、Token、Credential及其相互關(guān)系然后通過命令行實(shí)操演示了域管理、用戶管理、組管理、項(xiàng)目創(chuàng)建與配額設(shè)置等關(guān)鍵操作。接著深入剖析了Keystone的三大核心功能用戶權(quán)限管理、服務(wù)端點(diǎn)維護(hù)、認(rèn)證與鑒權(quán)并詳細(xì)解釋了User、Credentials、Authentication、Token、Project、Service、Endpoint、Role等核心概念的工作機(jī)制。最后通過查詢可用image的實(shí)際操作示例完整展示了OpenStack內(nèi)部認(rèn)證流程包括登錄驗(yàn)證、Token獲取、服務(wù)端點(diǎn)訪問和權(quán)限驗(yàn)證等關(guān)鍵步驟幫助讀者建立對Keystone認(rèn)證體系的系統(tǒng)性理解。OpenStack認(rèn)證管理-KeystoneKeystone基本概念Domain域Keystone中一個虛擬概念一個域是一組User Group或Project的容器User用戶是可以通過Keystone訪問OpenStack服務(wù)的個人、系統(tǒng)或某個服務(wù)Group用戶組是一組User的容器可以向Group中添加用戶并直接給Group分配角色Project項(xiàng)目是各個服務(wù)中一些可以訪問的資源集合項(xiàng)目只需在某個域下唯一即可Role角色具有一組定義的用戶權(quán)限和特權(quán)以執(zhí)行一組特定操作角色不同被賦予的權(quán)限不同Service服務(wù)一種OpenStack服務(wù)服務(wù)會對外暴露一個或多個端點(diǎn)用戶可以通過這些端點(diǎn)訪問資源并執(zhí)行操作Endpoint端點(diǎn)是指一個可以用來訪問某個具體服務(wù)的網(wǎng)絡(luò)地址Token令牌是允許訪問特定資源的憑證Credential憑證確認(rèn)用戶身份的數(shù)據(jù)如用戶的用戶名和密碼?Domain一個域可以對應(yīng)一個大的機(jī)構(gòu)、一個數(shù)據(jù)中心并且必須全局唯一。云的終端用戶可以在自己的Domain中創(chuàng)建多個Project、User、Group和Role。具備對多個Project進(jìn)行統(tǒng)一管理的能力。?UserKeystone會通過認(rèn)證信息Credential如密碼等驗(yàn)證用戶請求的合法性通過驗(yàn)證的用戶將會分配到一個特定的令牌該令牌可以被當(dāng)作后續(xù)資源訪問的一個通行證并非全局唯一只需要在域內(nèi)唯一即可。?Group用戶組是一組User的容器可以向Group中添加用戶并直接給Group分配角色在這個Group中的所有用戶就擁有了Group所擁有的角色權(quán)限。通過引入Group的概念Keystone實(shí)現(xiàn)了對用戶組的管理達(dá)到了同時管理一組用戶權(quán)限的目的。?Project項(xiàng)目是各個服務(wù)中的一些可以訪問的資源集合。我們需要在創(chuàng)建虛擬機(jī)時指定某個項(xiàng)目在Cinder創(chuàng)建卷時也需要指定具體的項(xiàng)目。用戶總是被默認(rèn)綁定到某些項(xiàng)目上在用戶訪問項(xiàng)目的資源前必須具有對該項(xiàng)目的訪問權(quán)限或者說在特定項(xiàng)目下被賦予了特定的角色。項(xiàng)目不必全局唯一只需要在某個域下唯一即可。在OpenStack的界面和文檔中Tenant/Project/Account這幾個術(shù)語是通用的但長期看會傾向使用Project公有云叫租戶?Role一個用戶所具有的角色角色不同意味著被賦予的權(quán)限不同只有知道用戶被賦予的角色才能知道該用戶是否有權(quán)限訪問某資源。用戶可以被賦予一個域或項(xiàng)目內(nèi)的角色。一個用戶被賦予域的角色意味著他對域內(nèi)所有的項(xiàng)目都具有相同的角色而特定項(xiàng)目的角色只具有對特定項(xiàng)目的訪問權(quán)限。角色可以被繼承在一個項(xiàng)目樹下?lián)碛懈疙?xiàng)目的訪問權(quán)限也意味著同時擁有對子項(xiàng)目的訪問權(quán)限。角色必須全局唯一。查看domain[rootcontroller ~]# source keystonerc_admin[rootcontroller ~(keystone_admin)]# openstack domain list------------------------------------------------------------------------|ID|Name|Enabled|Description|------------------------------------------------------------------------|2c99588e109d427abb530cbb9aada74a|heat|True|||default|Default|True|The default domain|------------------------------------------------------------------------創(chuàng)建domain:# 創(chuàng)建新的domain叫domain-test[rootcontroller ~(keystone_admin)]# openstack domain create domain-test-----------------------------------------------|Field|Value|-----------------------------------------------|description|||enabled|True||id|c70009318d0141c7a84b26ff427ff9d6||name|domain-test||options|{}||tags|[]|-----------------------------------------------#再次驗(yàn)證確實(shí)多了一個domain-test[rootcontroller ~(keystone_admin)]# openstack domain list----------------------------------------------------------------------------|ID|Name|Enabled|Description|----------------------------------------------------------------------------|2c99588e109d427abb530cbb9aada74a|heat|True|||c70009318d0141c7a84b26ff427ff9d6|domain-test|True|||default|Default|True|The default domain|----------------------------------------------------------------------------[rootcontroller ~(keystone_admin)]#刪除domain:[rootcontroller ~(keystone_admin)]# openstack domain set --disable domain-test #設(shè)置domain禁用[rootcontroller ~(keystone_admin)]# openstack domain delete domain-test[rootcontroller ~(keystone_admin)]# openstack domain list------------------------------------------------------------------------|ID|Name|Enabled|Description|------------------------------------------------------------------------|2c99588e109d427abb530cbb9aada74a|heat|True|||default|Default|True|The default domain|------------------------------------------------------------------------開啟多域登錄界面[rootcontroller ~(keystone_admin)]# cd /etc/openstack-dashboard/[rootcontroller openstack-dashboard(keystone_admin)]# lscinder_policy.json glance_policy.json keystone_policy.json local_settings local_settings.d neutron_policy.json nova_policy.d nova_policy.json[rootcontroller openstack-dashboard(keystone_admin)]# vim local_settings#修改配置文件83行如下開啟keystone支持多域83OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORTTrue[rootcontroller openstack-dashboard(keystone_admin)]# systemctl restart httpd測試多域登錄效果列出所有用戶[rootcontroller ~(keystone_admin)]# openstack user list----------------------------------------------|ID|Name|----------------------------------------------|7ef9147a8abe485889ece90dce340ab1|admin||8624a4e61d6c4b589814c369af26cb5f|heat_admin||8770fb183087426eb29543f3d629b66f|glance||c3eba4bb5577404285b333e4de5c1909|cinder||c286b069d5064a2b8050b3438f31ef7f|nova||66fbd238901143d1a2b9e1e848117aff|placement||7e1d63925490464c897f75275c7364e6|neutron||1dd2bd1d566a4f4091e99441bb1da9b5|swift||9368227a55f44dba85e10bc7c696813c|heat||be5dc0149ba4402db25045a17a3d7a59|heat-cfn||e1ddffa452504776bc845f6f4114cd14|gnocchi||fda949b4ff944336bb3206d6f7e6bc4c|ceilometer||10286ba1e9974e6994fe9908ab0db617|aodh|----------------------------------------------創(chuàng)建新用戶user1#創(chuàng)建用戶user1密碼HUAWEI[rootcontroller ~(keystone_admin)]# openstack user create --password HUAWEI user1-------------------------------------------------------|Field|Value|-------------------------------------------------------|domain_id|default||enabled|True||id|77ae3f5b216749ef8663c3bdb5679d36||name|user1||options|{}||password_expires_at|None|-------------------------------------------------------#查看用戶列表有沒有新創(chuàng)建的用戶user1user1在最下面[rootcontroller ~(keystone_admin)]# openstack user list----------------------------------------------|ID|Name|----------------------------------------------|7ef9147a8abe485889ece90dce340ab1|admin||8624a4e61d6c4b589814c369af26cb5f|heat_admin||8770fb183087426eb29543f3d629b66f|glance||c3eba4bb5577404285b333e4de5c1909|cinder||c286b069d5064a2b8050b3438f31ef7f|nova||66fbd238901143d1a2b9e1e848117aff|placement||7e1d63925490464c897f75275c7364e6|neutron||1dd2bd1d566a4f4091e99441bb1da9b5|swift||9368227a55f44dba85e10bc7c696813c|heat||be5dc0149ba4402db25045a17a3d7a59|heat-cfn||e1ddffa452504776bc845f6f4114cd14|gnocchi||fda949b4ff944336bb3206d6f7e6bc4c|ceilometer||10286ba1e9974e6994fe9908ab0db617|aodh||77ae3f5b216749ef8663c3bdb5679d36|user1|----------------------------------------------#查看user1用戶詳細(xì)信息[rootcontroller ~(keystone_admin)]# openstack user show user1-------------------------------------------------------|Field|Value|-------------------------------------------------------|domain_id|default||enabled|True||id|77ae3f5b216749ef8663c3bdb5679d36||name|user1||options|{}||password_expires_at|None|-------------------------------------------------------創(chuàng)建組group1并將user1加入group1#創(chuàng)建組group1[rootcontroller ~(keystone_admin)]# openstack group create group1-----------------------------------------------|Field|Value|-----------------------------------------------|description|||domain_id|default||id|f259902c4c0242d3b392d951494e747f||name|group1|-----------------------------------------------#列出所有的組[rootcontroller ~(keystone_admin)]# openstack group list------------------------------------------|ID|Name|------------------------------------------|f259902c4c0242d3b392d951494e747f|group1|------------------------------------------#查看group1組詳細(xì)信息[rootcontroller ~(keystone_admin)]# openstack group show group1-----------------------------------------------|Field|Value|-----------------------------------------------|description|||domain_id|default||id|f259902c4c0242d3b392d951494e747f||name|group1|-----------------------------------------------#將user1加入group1[rootcontroller ~(keystone_admin)]# openstack group add user group1 user1#查看user1是否隸屬于group1[rootcontroller ~(keystone_admin)]# openstack group contains user group1 user1user1ingroup group1查看角色role[rootcontroller ~(keystone_admin)]# openstack role list----------------------------------------------------|ID|Name|----------------------------------------------------|030b4ca553dc41349168eaca4fd43f42|ResellerAdmin||461321ea6a284081b692a469a15d7938|SwiftOperator||4ef39ef24f694c9aa6c1101622da0e92|admin||8b24d8bef4004573a8f3cb1f5a1517a8|_member_||973e0706bc66471a90d09f177bfb6a1d|member||a3af83fe8bf84014b01feae786f83b8b|heat_stack_owner||ce4a3e671d9040359d6f6f55555bf429|reader||e9cd36ba1b8744878cc15a05709ab1fd|heat_stack_user|----------------------------------------------------給group1賦予角色admin[rootcontroller ~(keystone_admin)]# openstack role add --project admin --group group1 admin驗(yàn)證group1角色[rootcontroller ~(keystone_admin)]# openstack role assignment list --names --group group1-----------------------------------------------------------------------|Role|User|Group|Project|Domain|System|Inherited|-----------------------------------------------------------------------|admin||group1Default|adminDefault|||False|-----------------------------------------------------------------------創(chuàng)建ProjectA:#創(chuàng)建項(xiàng)目ProjectA[rootcontroller ~(keystone_admin)]# openstack project create ProjectA-----------------------------------------------|Field|Value|-----------------------------------------------|description|||domain_id|default||enabled|True||id|a6aa11ee311a46889ac34e49b8da47d1||is_domain|False||name|ProjectA||options|{}||parent_id|default||tags|[]|-----------------------------------------------#查看驗(yàn)證命令[rootcontroller ~(keystone_admin)]# openstack project list[rootcontroller ~(keystone_admin)]# openstack project show projectA#ProjeectA分配給用戶user1[rootcontroller ~(keystone_admin)]# openstack user set --project ProjectA user1#給項(xiàng)目ProjectA里的用戶user1賦予角色admin[rootcontroller ~(keystone_admin)]# openstack role add --user user1 --project ProjectA admin查看ProjectA現(xiàn)象思考同樣的 方式創(chuàng)建一個項(xiàng)目ProjectB,分配給用戶user2角色admin創(chuàng)建一個用戶user3,在項(xiàng)目ProjectA中的角色為member修改ProjectA配額#將Project配額設(shè)置為實(shí)例3vcpu 5,內(nèi)存5000MB[rootcontroller ~(keystone_admin)]# openstack quota set --instance 3 --cores 5 --ram 5000 ProjectA修改配額實(shí)驗(yàn)現(xiàn)象使用user1登錄切換到ProjectA查看OpenStack有哪些服務(wù):[rootcontroller ~(keystone_admin)]# openstack service list--------------------------------------------------------------|ID|Name|Type|--------------------------------------------------------------|006d8f9e6a054e238a1093fe5af715bf|swift|object-store||1abf3641147f40368f8d1c7e8b5677e1|heat|orchestration||2e6919aa53eb48cb99bc992b506a0e3e|glance|image||5dfb29073cf140199cc78b2d84fac299|keystone|identity||5ed901220a18430f8d423f9a95d43477|ceilometer|metering||8ec4ba00f67448ad8acedc744dce2d87|heat-cfn|cloudformation||9a6c3edee4ba431db7d1cac840b91dcb|neutron|network||a747c0c45e544fa9b20538474ac579d1|nova|compute||c4e445f741a943ff897eb494cca6df6e|cinderv2|volumev2||d06744c3ad6343988bb0ab60b291ffeb|placement|placement||db9e425f65ac4808ab62dc1659f58916|cinderv3|volumev3||e11ec9b570254141bdac2ff3ec75179d|aodh|alarming||e3a0ba8fe0f844249bfa3a90ec6a6fea|gnocchi|metric|--------------------------------------------------------------查看OpenStack endpoint:三個入口admin\public\internal查看catalog:理解Keystone核心概念作為 OpenStack 的基礎(chǔ)支持服務(wù)Keystone 做下面這幾件事情管理用戶及其權(quán)限維護(hù) OpenStack Services 的 EndpointAuthentication認(rèn)證和 Authorization鑒權(quán)學(xué)習(xí) Keystone得理解下面這些概念UserUser 指代任何使用 OpenStack 的實(shí)體可以是真正的用戶其他系統(tǒng)或者服務(wù)。當(dāng) User 請求訪問 OpenStack 時Keystone 會對其進(jìn)行驗(yàn)證。Horizon 在身份管理用戶 管理 User除了 adminOpenStack 也為 nova、cinder、glance、neutron 服務(wù)創(chuàng)建了相應(yīng)的 User。 admin 也可以管理這些 User。CredentialsCredentials 是 User 用來證明自己身份的信息可以是用戶名/密碼TokenAPI Key其他高級方式AuthenticationAuthentication 是 Keystone 驗(yàn)證 User 身份的過程。User 訪問 OpenStack 時向 Keystone 提交用戶名和密碼形式的 CredentialsKeystone 驗(yàn)證通過后會給 User 簽發(fā)一個 Token 作為后續(xù)訪問的 Credential。TokenToken 是由數(shù)字和字母組成的字符串User 成功 Authentication 后 Keystone 生成 Token 并分配給 User。Token 用做訪問 Service 的 CredentialService 會通過 Keystone 驗(yàn)證 Token 的有效性Token 的有效期默認(rèn)是 24 小時ProjectProject 用于將 OpenStack 的資源計(jì)算、存儲和網(wǎng)絡(luò)進(jìn)行分組和隔離。根據(jù) OpenStack 服務(wù)的對象不同Project 可以是一個客戶公有云也叫租戶、部門或者項(xiàng)目組私有云。這里請注意資源的所有權(quán)是屬于 Project 的而不是 User。在 OpenStack 的界面和文檔中Tenant / Project / Account 這幾個術(shù)語是通用的但長期看會傾向使用 Project每個 User包括 admin必須掛在 Project 里才能訪問該 Project 的資源。 一個User可以屬于多個 Project。admin 相當(dāng)于 root 用戶具有最高權(quán)限Horizon 在 身份管理項(xiàng)目 中管理 Project通過 管理成員將 User 添加到 ProjectServiceOpenStack 的 Service 包括 Compute (Nova)、Block Storage (Cinder)、Object Storage (Swift)、Image Service (Glance) 、Networking Service (Neutron) 等。每個 Service 都會提供若干個 EndpointUser 通過 Endpoint 訪問資源和執(zhí)行操作。EndpointEndpoint 是一個網(wǎng)絡(luò)上可訪問的地址通常是一個 URL。Service 通過 Endpoint 暴露自己的 API。 Keystone 負(fù)責(zé)管理和維護(hù)每個 Service 的 Endpoint。可以使用下面的命令來查看 Endpoint。[rootcontroller ~(keystone_admin)]# openstack endpoint list[rootcontroller ~(keystone_admin)]# openstack catalog listRole安全包含兩部分Authentication認(rèn)證和 Authorization鑒權(quán)Authentication 解決的是“你是誰”的問題Authorization 解決的是“你能干什么”的問題Keystone 借助 Role 實(shí)現(xiàn) AuthorizationKeystone定義Role可以為 User 分配一個或多個 RoleHorizon 的菜單為 Identity-Project-Manage MembersService 決定每個 Role 能做什么事情 Service 通過各自的 policy.json 文件對 Role 進(jìn)行訪問控制。 下面是 Nova 服務(wù) /etc/nova/policy.json 中的示例訪問策略規(guī)則以JSON格式指定文件名為policy.json策略文件的路徑是/etc/SERVICE_NAME/policy.json例如/etc/keystone/policy.jsonpackstack安裝策略文件路徑是/etc/openstack-dashboard/SERVICE_NAME_policy.jsonOpenStack 默認(rèn)配置只區(qū)分 admin 和非 admin Role。 如果需要對特定的 Role 進(jìn)行授權(quán)可以修改 policy.json(一般不要改)。下一節(jié)我們將通過例子加深對這些概念的理解。通過例子學(xué)習(xí)keystone上一節(jié)介紹了 Keystone 的核心概念。本節(jié)我們通過“查詢可用 image”這個實(shí)際操作讓大家對這些概念建立更加感性的認(rèn)識。User admin 要查看 Project 中的 image第 1 步 登錄當(dāng)點(diǎn)擊登入時OpenStack 內(nèi)部發(fā)生了哪些事情請看下面Token 中包含了 User 的 Role 信息第 2 步 顯示操作界面請注意頂部顯示 admin 可訪問的 Project 為 “admin” ”。 其實(shí)在此之前發(fā)生了一些事情同時admin 可以訪問 實(shí)例, 鏡像 卷等服務(wù)這是因?yàn)?admin 已經(jīng)從 Keystone 拿到了各 Service 的 Endpoints第 3 步 顯示 鏡像 列表點(diǎn)擊 “鏡像”會顯示鏡像列表背后發(fā)生了這些事首先 admin 將請求發(fā)送到 Glance 的 EndpointGlance 向 Keystone 詢問 admin 身份是否有效接下來 Glance 會查看 /etc/glance/policy.json 判斷 admin 是否有查看 image 的權(quán)限權(quán)限判定通過Glance 將 image 列表發(fā)給 admin。TroubleshootOpenStack 排查問題的方法主要是通過日志。每個 Service 都有自己的日志文件。Keystone 主要有一個日志 keystone.log 保存在 /var/log/keystone/ 目錄里。[rootcontroller nova(keystone_admin)]# cd /var/log/keystone/[rootcontroller keystone(keystone_admin)]# lskeystone.log如果需要得到最詳細(xì)的日志信息可以在 /etc/keystone/keystone.conf 中打開 debug 選項(xiàng)[rootcontroller keystone(keystone_admin)]# cd /etc/keystone/[rootcontroller keystone(keystone_admin)]# lsdefault_catalog.templates fernet-keys keystone.conf logging.conf policy.d policy.json puppet.conf sso_callback_template.html[rootcontroller keystone(keystone_admin)]# vim keystone.conf# 修改配置文件第94行94debugTrue?我們以創(chuàng)建VM為例站在整個OpenStack角度來看一下整個認(rèn)證流程是怎樣的。?首先用戶需要使用OpenStack第一步就要向Keystone提供用戶名密碼來獲取Token。當(dāng)用戶獲取Token后需要向Nova發(fā)送創(chuàng)建虛擬機(jī)請求Nova負(fù)責(zé)調(diào)用計(jì)算資源并管理虛擬機(jī)的生命周期所以這個創(chuàng)建請求要發(fā)送到Nova。請求的Head中會攜帶Token當(dāng)Nova-api接收到請求后會將Token傳遞到Keystone進(jìn)行驗(yàn)證是否有效合法。當(dāng)驗(yàn)證成功后返回信息給NovaNova才開始進(jìn)行創(chuàng)建VM操作。這邊不具體介紹Nova如何操作但是我們知道創(chuàng)建一臺虛擬機(jī)不僅需要準(zhǔn)備CPU、內(nèi)存等計(jì)算資源還要有相應(yīng)的網(wǎng)絡(luò)、存儲等資源這里以網(wǎng)絡(luò)資源為例Nova-api將token透傳給Nova-computeNova-compute會向Neutron-server發(fā)送與網(wǎng)絡(luò)相關(guān)操作請求請求Head中也攜帶TokenNeutron收到請求后也會將Token傳遞到Keystone驗(yàn)證驗(yàn)證成功才執(zhí)行相應(yīng)操作。?這個流程中我們可以看到不同服務(wù)間的調(diào)用也要攜帶Token并且Keystone只校驗(yàn)了Token的有效性那么每個服務(wù)的操作權(quán)限控制是怎么實(shí)現(xiàn)的呢?首先用戶發(fā)送基本信息給Keystone一般是用戶名和密碼。Keystone經(jīng)過驗(yàn)證后會返回一個Token給用戶用戶向Nova發(fā)送創(chuàng)建虛擬機(jī)請求并攜帶Token信息nova接收到請求后會拿著Token去Keystone進(jìn)行驗(yàn)證驗(yàn)證成功后開始執(zhí)行創(chuàng)建VM操作Nova會向Glance發(fā)送申請鏡像信息并攜帶Token會向Neutron發(fā)送申請網(wǎng)絡(luò)信息也會攜帶TokenGlance和Neutron組件接收到請求后都會向Keystone驗(yàn)證Token的有效性圖中僅用了一條線表示請注意理解驗(yàn)證通過即執(zhí)行相應(yīng)的操作返回完成信息當(dāng)VM創(chuàng)建完成后Nova返回創(chuàng)建成功信息給用戶用戶即可使用虛擬機(jī)。

相關(guān)新聞

ESP32-S3驅(qū)動LED點(diǎn)陣屏:從硬件連接到DMA圖形顯示實(shí)戰(zhàn)

ESP32-S3驅(qū)動LED點(diǎn)陣屏:從硬件連接到DMA圖形顯示實(shí)戰(zhàn)

1. 項(xiàng)目概述:當(dāng)ESP32-S3遇上點(diǎn)陣屏,一場硬件創(chuàng)意的化學(xué)反應(yīng)如果你玩過ESP32,那你一定知道它作為一款高性價比、功能強(qiáng)大的Wi-Fi/藍(lán)牙雙模MCU,在物聯(lián)網(wǎng)和智能硬件圈子里有多火。但今天我們要聊的,是它的“升級版”——E…

2026/8/2 2:44:37 閱讀更多
基于AI的文本關(guān)系分析:從模型部署到API集成的完整實(shí)踐指南

基于AI的文本關(guān)系分析:從模型部署到API集成的完整實(shí)踐指南

這次我們來看一個名為“看破了,你們中上真的是仇人嗎?”的項(xiàng)目。從標(biāo)題來看,這很可能是一個涉及情感分析、關(guān)系預(yù)測或社交網(wǎng)絡(luò)挖掘的AI模型或工具。這類項(xiàng)目通常用于分析文本(如對話、評論、社交媒體內(nèi)容)中人物或?qū)嶓w…

2026/8/2 2:34:37 閱讀更多
菲涅爾反射率:實(shí)時渲染中實(shí)現(xiàn)真實(shí)材質(zhì)與邊緣光效的核心技術(shù)

菲涅爾反射率:實(shí)時渲染中實(shí)現(xiàn)真實(shí)材質(zhì)與邊緣光效的核心技術(shù)

1. 項(xiàng)目概述:從“一閃而過”到“真實(shí)可信”的視覺魔法在實(shí)時渲染的世界里,我們追求的是在毫秒級的時間內(nèi),將虛擬場景以假亂真地呈現(xiàn)在屏幕上。你是否曾困惑,為什么游戲里金屬武器邊緣的光澤特別銳利,而水面在掠射角度觀…

2026/8/2 3:34:40 閱讀更多
SpringBoot+PostgreSQL + 硅基流動大模型從零搭建 Text-to-SQL 智能問答系統(tǒng)

SpringBoot+PostgreSQL + 硅基流動大模型從零搭建 Text-to-SQL 智能問答系統(tǒng)

目錄 前言 一、項(xiàng)目整體介紹 1.1 什么是 Text-to-SQL 1.2 系統(tǒng)核心功能 1.3 技術(shù)選型說明 二、本地環(huán)境準(zhǔn)備 2.1 開發(fā)環(huán)境硬性要求 2.2 PostgreSQL 數(shù)據(jù)庫初始化 2.3 硅基流動 API Key 申請步驟 三、項(xiàng)目完整目錄結(jié)構(gòu) 四、Maven 依賴與全局配置 4.1 pom.xml 完整依賴…

2026/8/2 3:34:40 閱讀更多
UniApp微信小程序白屏問題全鏈路排查指南:從原理到實(shí)戰(zhàn)解決

UniApp微信小程序白屏問題全鏈路排查指南:從原理到實(shí)戰(zhàn)解決

1. 問題引入:當(dāng)你的UniApp小程序變成一片空白 做UniApp微信小程序開發(fā),最讓人頭皮發(fā)麻的瞬間之一,莫過于本地調(diào)試一切正常,真機(jī)預(yù)覽或上傳體驗(yàn)版后,頁面加載出來卻是一片刺眼的白屏。這感覺就像你精心準(zhǔn)備了滿漢全席&…

2026/8/2 3:34:40 閱讀更多
數(shù)據(jù)庫Mysql結(jié)課實(shí)驗(yàn)

數(shù)據(jù)庫Mysql結(jié)課實(shí)驗(yàn)

實(shí)驗(yàn)環(huán)境:openEuler Linux 虛擬機(jī)、MySQL 8.0.45、Python3.11.9、騰訊云 TokenHub 大模型 API實(shí)驗(yàn)?zāi)繕?biāo):獨(dú)立完成 Linux 服務(wù)器、MySQL 數(shù)據(jù)庫、Python 運(yùn)行環(huán)境全套部署;實(shí)現(xiàn)自然語言自動生成只讀 MySQL 查詢、自動執(zhí)行并 AI 解讀業(yè)務(wù)數(shù)據(jù)&am…

2026/8/2 3:24:40 閱讀更多
MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動化發(fā)布完整解決方案 【免費(fèi)下載鏈接】MoneyPrinterPlus AI一鍵批量生成各類短視頻,自動批量混剪短視頻,自動把視頻發(fā)布到抖音,快手,小紅書,視頻號上,賺錢從來沒有這么容易過! 支持本地語音模型chatTTS,fasterwhisper,…

2026/8/2 0:04:00 閱讀更多
3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南 【免費(fèi)下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說說 項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過,那些年發(fā)過的QQ空間說說,那些記錄青春的文字…

2026/8/2 0:04:01 閱讀更多
MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動化發(fā)布完整解決方案 【免費(fèi)下載鏈接】MoneyPrinterPlus AI一鍵批量生成各類短視頻,自動批量混剪短視頻,自動把視頻發(fā)布到抖音,快手,小紅書,視頻號上,賺錢從來沒有這么容易過! 支持本地語音模型chatTTS,fasterwhisper,…

2026/8/2 0:04:00 閱讀更多
3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南 【免費(fèi)下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說說 項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過,那些年發(fā)過的QQ空間說說,那些記錄青春的文字…

2026/8/2 0:04:01 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應(yīng)用材料(Applied Materials)公司生產(chǎn)的一款用于半導(dǎo)體設(shè)備的I/O信號分配電路板。該型號(0100-02186)的核心特點(diǎn)如下:專用于Endura等半導(dǎo)體工藝腔室。集成信號路由與分配功能。連接控制…

2026/8/2 2:51:21 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動機(jī)是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機(jī),適用于自動化設(shè)備及通用機(jī)械驅(qū)動。該型號(FFMN-32L-10-T0 40AX)的核心特點(diǎn)如下:三相交流異步電動機(jī)。額定…

2026/8/2 2:52:49 閱讀更多