CINXE.COM
开发者-腾讯云
<!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta charset="utf-8"> <meta name="format-detection" content="telephone=no"> <title>开发者-腾讯云</title> <meta name="keywords" content="腾讯云,tencent cloud,云服务器,云主机,CDN,对象存储,域名注册备案,云存储,云数据库,互联网+解决方案,QQ云"> <meta name="description" content="腾讯云为数百万的企业和开发者提供安全、稳定的云服务器、云主机、CDN、对象存储、域名注册、云存储、云数据库等云服务,帮助用户解决游戏、视频、移动、微信、互联网+等行业的架构难题,是全球领先的云计算服务商。"> <link rel="dns-prefetch" href="//cloudcache.tencent-cloud.com" /> <link rel="dns-prefetch" href="//qzonestyle.gtimg.cn" /> <link rel="dns-prefetch" href="//qzs.qq.com" /> <link rel="icon" href="//cloudcache.tencent-cloud.com/qcloud/favicon.ico" type="image/x-icon" /> <script> !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).assetsRetry=e()}(this,function(){"use strict";function a(t){return t}function d(){}function r(t,e){try{return"function"==typeof t[e]}catch(t){return!1}}function y(t){return Array.isArray(t)?t.reduce(function(t,e,n,r){return t[e]=r[(n+1)%r.length],t},{}):t}function p(e,t){return Object.keys(t).filter(function(t){return-1<e.indexOf(t)}).sort(function(t,e){return e.length-t.length})[0]}var e,g="retryTimes",m="succeeded",b="failed",E="maxRetryCount",O="onRetry",f="onSuccess",s="onFail",j="domain",h="_assetsRetryScript",v="_assetsRetryOnerror",l="script",w="data-assets-retry-hooked",S="data-retry-id",A=window,k=window.document,n=A.HTMLElement,R=A.HTMLScriptElement,c=A.HTMLStyleElement,x=A.HTMLLinkElement,L=A.HTMLImageElement,o=Object.prototype.hasOwnProperty,T=function(t,e,n){var r=t.indexOf(e);return-1===r?t:t.substring(0,r)+n+t.substring(r+e.length)},_=function(t){return[].slice.call(t)},M=function(e,t,n,r){void 0===n&&(n=d),void 0===r&&(r=!1);var o,i,c,u,a,f=r||e.defer||e.async;"loading"!==k.readyState||/Edge|MSIE|rv:/i.test(navigator.userAgent)||f?(o=k.createElement(l),Object.keys(R.prototype).forEach(function(t){if("src"!==t&&e[t]&&"object"!=typeof e[t])try{o[t]=e[t]}catch(t){}}),o.src=t,o.onload=e.onload,o.onerror=e.onerror,o.setAttribute(S,P()),(i=e.getAttribute("nonce"))&&o.setAttribute("nonce",i),k.getElementsByTagName("head")[0].appendChild(o)):(c=P(),u=e.outerHTML.replace(/data-retry-id="[^"]+"/,"").replace(/src=(?:"[^"]+"|.+)([ >])/,S+"="+c+' src="'+t+'"$1'),k.write(u),(a=k.querySelector("script["+S+'="'+c+'"]'))&&(a.onload=n))},N=function(e){try{return e.rules}catch(t){try{return e.cssRules}catch(t){return null}}},H=function(e,t,n){var r=k.createElement("link");Object.keys(x.prototype).forEach(function(t){if("href"!==t&&e[t]&&"object"!=typeof e[t])try{r[t]=e[t]}catch(t){}}),r.href=t,r.onload=n,r.setAttribute(S,P()),k.getElementsByTagName("head")[0].insertBefore(r,e)},I=function(t){return t?t instanceof n?[t.nodeName,t.src,t.href,t.getAttribute(S)].join(";"):"not_supported":"null"},P=function(){return Math.random().toString(36).slice(2)},C=function(t){return t instanceof R||t instanceof L?t.src:t instanceof x?t.href:null},B={},F=function(t,e){var n,r=$(t,e),o=r[0],i=r[1];return o?(B[o]=B[o]||((n={})[g]=0,n[b]=[],n[m]=[],n),[i,B[o]]):[]},$=function(t,e){var n,r,o=p(t,e);return o?[(r=o,(n=t).substr(n.indexOf(r)+r.length,n.length)),o]:["",""]};try{e=function(t){for(var e=Object.getPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__},n=Object.keys(t);e(t);)n=n.concat(Object.keys(e(t))),t=e(t);return n.filter(function(t){return"constructor"!==t})}(R.prototype)}catch(t){}function i(a,t){var f=t[E],s=y(t[j]),l=t[O];return e.reduce(function(t,e){var n=r(R.prototype,e);return t[e]=n?{value:function(){return a[h][e].apply(a[h],arguments)}}:{set:function(o){return"onerror"===e?(a[v]=o,void(a[h].onerror=function(r){r.stopPropagation&&r.stopPropagation();function t(){return t=a[v],e=a[h],n=r,"function"!=typeof t?null:t.call(e,n);var t,e,n}var e=a[h].src,n=F(e,s),o=n[0],i=n[1];if(!o||!i)return t();var c=T(e,o,s[o]),u=l(c,e,i);if(null===u)return t();if("string"!=typeof u)throw new Error("a string should be returned in `onRetry` function");i[g]<=f?M(a[h],u,d,!0):t()})):"onload"===e?(a._assetsRetryOnload=o,void(a[h].onload=function(t){var e=a[h].src,n=F(e,s),r=(n[0],n[1]);r&&-1===r[b].indexOf(e)&&r[m].push(e),o&&!o._called&&(o._called=!0,o.call(a[h],t))})):void(a[h][e]=o)},get:function(){return a[h][e]}},t},{})}var q=function(n){var r=k.createElement;k.createElement=function(t,e){return t===l?function(t,e){var n;t.setAttribute(w,"true");var r=((n={})[h]=t,n[v]=d,n),o=i(r,e);return Object.defineProperties(r,o),r}(r.call(k,l),n):r.call(k,t,e)},k.createElement.toString=function(){return"function createElement() { [native code] }"}},z=function(n){Object.keys(n).filter(function(t){return r(n,t)}).forEach(function(t){var e=n[t];n[t]=function(){var t=[].slice.call(arguments).map(function(t){return t&&o.call(t,h)?t[h]:t});return e.apply(this,t)},/^\w+$/.test(t)&&(n[t].toString=new Function("return 'function "+t+"() { [native code] }'"))})};var Z={};function D(y){function c(t){if(t){var e=t.target||t.srcElement,n=C(e);if(n){var r=F(n,v),o=r[0],i=r[1];if(i&&o){i[g]++,i[b].push(n);var c,u=i[g]>y[E];if(u&&(c=$(n,v)[0],h(c)),v[o]&&!u){var a=v[o],f=T(n,o,a),s=p(f,n,i);if(null!==s){if("string"!=typeof s)throw new Error("a string should be returned in `onRetry` function");var l,d=I(e);Z[d]||(Z[d]=!0,l=function(){i[m].push(s)},e instanceof R&&!e.getAttribute(w)&&e.src?M(e,s,l):e instanceof x&&e.href?(e.getAttribute('crossorigin')&&e.removeAttribute('crossorigin'),H(e,s,l)):e instanceof L&&e.src&&(e.setAttribute(S,P()),e.src=s,e.onload=l))}}}}}}var p=y[O],u=y[f],h=y[s],v=y[j];k.addEventListener("error",c,!0),k.addEventListener("load",function(t){var e,n,r,o,i;t&&(e=t.target||t.srcElement,(n=C(e))&&(e.getAttribute(S)&&(r=$(n,v)[0],u(r)),e instanceof x&&k.styleSheets&&(o=_(k.styleSheets).filter(function(t){return t.href===e.href})[0],null!==(i=N(o))&&0===i.length&&c(t))))},!0)}function u(t,e,n,r,o){var i=o[j],c=o[O],u=e.style&&e.style[t];if(u&&!/^url\(["']?data:/.test(u)){var a=u.match(/^url\(["']?(.+?)["']?\)/)||[],f=a[1];if(f){var s=p(f,i);if(s&&i[s]){var l=Object.keys(i).map(function(t){var e=T(f,s,t);return'url("'+c(e,f,null)+'")'}).join(","),d=e.selectorText+("{ "+t.replace(/([a-z])([A-Z])/g,function(t,e,n){return e+"-"+n.toLowerCase()}))+": "+l+" !important; }";try{n.insertRule(d,r.length)}catch(t){n.insertRule(d,0)}}}}}var G={},J=[],K=function(t,o){var i=["backgroundImage","borderImage","listStyleImage"];t.forEach(function(n){var r,t=N(n);null!==t&&((r=_(t)).forEach(function(e){i.forEach(function(t){u(t,e,n,r,o)})}),n.href&&(G[n.href]=!0),n.ownerNode instanceof c&&J.push(n.ownerNode))})},Q=function(t,n){return _(t).filter(function(t){if(!N(t))return!1;if(t.href)return!G[t.href]&&!!p(t.href,n);var e=t.ownerNode;return!(e instanceof c&&-1<J.indexOf(e))})};return function(t){var e,n,r,o;void 0===t&&(t={});try{if("object"!=typeof t[j])throw new Error("opts.domain cannot be non-object.");var i=[E,O,f,s,j],c=Object.keys(t).filter(function(t){return-1===i.indexOf(t)});if(0<c.length)throw new Error("option name: "+c.join(", ")+" is not valid.");var u=((e={})[E]=t[E]||3,e[O]=t[O]||a,e[f]=t[f]||d,e[s]=t[s]||d,e[j]=y(t[j]),e);return q(u),"undefined"!=typeof Node&&z(Node.prototype),"undefined"!=typeof Element&&z(Element.prototype),D(u),n=u,r=k.styleSheets,o=n[j],false&&setInterval(function(){var t=Q(k.styleSheets,o);0<t.length&&K(t,n)},250),B}catch(t){A.console&&console.error("[assetsRetry] error captured",t)}}}); try{ function __parseReportUrl(url) { var match = url.match(/^(https?\:)\/\/(([^:\/?#]*)(?:\:([0-9]+))?)([\/]{0,1}[^?#]*)(\?[^#]*|)(#.*|)$/); return match && { href: url, protocol: match[1], host: match[2], hostname: match[3], port: match[4], pathname: match[5], search: match[6], hash: match[7] } } var domainReportTag = { 'assets-retry-success': 0, 'assets-retry-fail': 0 }; var eventMaxReportTimes = 5; var assetsRetryReport = function(event, originalUrl) { var originalUrlObj = __parseReportUrl(originalUrl); // 上报限制次数 if (domainReportTag[event] && domainReportTag[event] >= eventMaxReportTimes) { return; } domainReportTag[event]++; var reportData = { url: location.href, referrer: document.referrer || '', event: event, app: 'qcmain', level: 0, at: new Date().getTime(), uin: '', originalUrl: originalUrl, originalCdnDomain: originalUrlObj.hostname } var reportUrl = 'https://insight.cloud.tencent.com/event'; var isSupportSendBeacon = typeof navigator.sendBeacon === 'function'; if (JSON && JSON.stringify) { var reportStr = JSON.stringify(reportData); if (isSupportSendBeacon) { navigator.sendBeacon(reportUrl, reportStr); } else { reportStr = encodeURIComponent(reportStr); reportStr = btoa(reportStr); new Image().src = reportUrl + '?d=' + reportStr; } } }; // information of assets var assetsRetryStatistics = window.assetsRetry({ // domain list, only resources in the domain list will be retried. domain: { 'cloudcache.tencentcs.com': 'cloudcache.tencent-cloud.com', 'cloudcache.tencent-cloud.com': 'cloudcache.tencentcs.com', 'main.qcloudimg.com': 'qcloudimg.tencentcs.com', 'qcloudimg.tencentcs.com': 'main.qcloudimg.com', 'cloudcache.tencent-cloud.cn': 'cloudcache.tencentcs.cn', 'cloudcache.tencentcs.cn': 'cloudcache.tencent-cloud.cn', 'qcloudimg.tencent-cloud.cn': 'qcloudimg.tencentcs.cn', 'qcloudimg.tencentcs.cn': 'qcloudimg.tencent-cloud.cn' }, // maximum retry count for each asset, default is 3 maxRetryCount: 2, // onRetry hook is how you can customize retry logic with, default is x => x onRetry: function(currentUrl, originalUrl, statistics) { return currentUrl; }, onSuccess: function(currentUrl) { var curStatic = assetsRetryStatistics[currentUrl]; if (curStatic && curStatic.failed && curStatic.failed.length) { assetsRetryReport('assets-retry-success', curStatic.failed[0]) } }, onFail: function(currentUrl) { var curStatic = assetsRetryStatistics[currentUrl]; if (curStatic && curStatic.failed && curStatic.failed.length) { assetsRetryReport('assets-retry-fail', curStatic.failed[0]) } } }) } catch (err) {} </script> <script src="https://cdn-go.cn/tam/aegis-sdk/latest/aegis.f.min.js"></script> <script> if (window.Aegis) { // build report api url var __aegisApiUrlHandler = function(apiUrl, payload) { try { if (typeof URL === 'function') { if(/^\/\//.test(apiUrl)) { apiUrl = location.protocol + apiUrl; } if (!/http|\/\//.test(apiUrl)) { apiUrl = location.protocol + '//' + location.host + apiUrl; } var urlObj = new URL(apiUrl); var apiPath = urlObj.pathname; var hostname = urlObj.hostname; var origin = urlObj.origin; // Add the action in the payload to the url if (payload) { payload = JSON.parse(payload); if(payload.action) { if (apiPath.indexOf('/', apiPath.length - 1) !== -1) { apiPath = [apiPath, payload.action].join(''); } else { apiPath = [apiPath, payload.action].join('/'); } } } // 云API if (apiPath === '/capi/ajax/') { apiPath = apiPath + [urlObj.searchParams.get('serviceType'), urlObj.searchParams.get('cmd')].join('/') } return { apiUrl: origin + apiPath, apiPath: apiPath }; } } catch(e) { return { apiUrl: apiUrl }; } }; // build report api is error var __aegisApiErrCodeHandler = function(apiPath, code) { var isErr = false; try { if (code !==0 && window.__aegisApiErrCodeConfig && apiPath) { if (__aegisApiErrCodeConfig[apiPath] && __aegisApiErrCodeConfig[apiPath].includes && __aegisApiErrCodeConfig[apiPath].includes(Number(code))){ isErr = true; } } }catch(e){} return isErr; } /** * @param {{ logType: 'log'; logs: { level: Aegis.logType.CSS_ERROR; msg : string } }} data */ var __aegisCSSLoadFailFilter = function(data) { if (!/qcloud_uid/.test(document.cookie)) { // missing `qcloud_uid` in cookie, ignore return false; } if (typeof URL !== 'function') return; try { var match = /(https:\/\/.+)$/.exec(data.logs.msg); if (!match || !match[1]) { // URL not found return; } var urlObj = new URL(match[1]); if (urlObj.hostname === location.hostname) { // css resource which load using main domain, ignore return false; } if (/css\/modules/.test(urlObj.pathname)) { // `**/css/module/*.css` which appear in different url path load failed, ignore return false; } } catch (e) { return; } } var aegis = window.aegisIns = new Aegis({ id: "dWOw9fv7jg4XmVzQ09", onError: true, pagePerformance: true, reportAssetSpeed: true, reportAssetSpeed: true, api: { reportRequest: true, resHeaders: ['x-req-id'], retCodeHandler(data, url, xhr, payload){ try { data = JSON.parse(data); } catch(e) { data = {}; } var code = data.code; var action = data.payloadAction; var apiPath = __aegisApiUrlHandler(url, payload).apiPath; return { isErr: __aegisApiErrCodeHandler(apiPath, code), code: code } } }, reportApiSpeed: { urlHandler(url, payload) { return __aegisApiUrlHandler(url, payload).apiUrl; }, }, ext1: "rkHwrIymkg", beforeRequest: function (data) { // 过滤掉一些明确上报 var ignoreKeys = ['Script error', 'chrome-extension', 'qq.com', 'queryWeappQrcodeStatus', 'login/ajax/info', 'woa.com', 'trafficCollect.php', 'google', 'dscache', 'act-api', 'set_qc_cookie', 'opc.cloud.tencent.com', 'uc_gre_ad_buss', 'eb.xcj.pub']; var alarmMsg = [data.logs.url, data.logs.msg].join('|'); for (var i=0; i<ignoreKeys.length; i++) { if (alarmMsg.indexOf(ignoreKeys[i]) != -1) return false; } // 过滤掉爬虫和开发者工具环境 if (/bot|wechatdevtools|spider/i.test(navigator.userAgent)) { return false; } // 过滤掉堆栈里无js文件的 if (data.logs.level === '4' && data.logs.msg && data.logs.msg.indexOf('.js') === -1) { return false; } // handle CSS ERROR (suffix `.css` OR tagName === 'link') if (data.logType === 'log' && data.logs.level === Aegis.logType.CSS_ERROR) { return __aegisCSSLoadFailFilter(data); } } }) } </script> <link rel="stylesheet" href="//cloudcache.tencent-cloud.com/qcloud/ui/gateway/portal/css/global-202307041440.css?max_age=31536000&t=20191128"> <link rel="stylesheet" href="//cloudcache.tencent-cloud.com/open_proj/proj_qcloud_v2/gateway/portal/css/global-components.css?max_age=31536000&t=20180817"> <link id="qcportal-kit-style" rel="stylesheet" href="https://cloudcache.tencent-cloud.com/qcloud/portal/kit/full.f344ca603e99f2a3ac3a.css"> <meta name="applicable-device" content="pc,mobile"> <meta property="og:image" content="https://cloudcache.tencent-cloud.com/open_proj/proj_qcloud_v2/gateway/shareicons/cloud.png"> <link rel="stylesheet" href="//cloudcache.tencent-cloud.com/qcloud/ui/portal-set/build/Developer/Developer-202307201124.css"/> <script> document.domain = 'cloud.tencent.com'; </script> </head> <body> <!--[if lt IE 9]> <script src="//cloudcache.tencent-cloud.com/qcloud/main/scripts/release/common/libs/updateTips.js?max_age=3600"></script> <![endif]--> <div id="qcportal-kit-topnav"><div role="navigation" id="navigationBar" data-type="cn_zh" class="pls-nav pls-nav-air "><div class="pls-nav-mod"><div class="pls-nav-top"><a class="pls-nav-top-logo" href="https://cloud.tencent.com" hotrep="hp.header.hp"><i>腾讯云</i></a><div class="pls-nav-list-wrap"><ul class="pls-nav-list"><li class="pls-nav-item" tabindex="-1"><a role="button" hotrep="hp.header.act" href="https://cloud.tencent.com/act">最新活动<i class="pls-nav-tag hot"><span class="pls-nav-tag-text">HOT</span></i></a></li><li class="pls-nav-item" tabindex="-1"><a role="button" hotrep="hp.header.product" href="https://cloud.tencent.com/product">产品</a></li><li class="pls-nav-item" tabindex="-1"><a role="button" hotrep="hp.header.solution" href="https://cloud.tencent.com/solution">解决方案</a></li><li class="pls-nav-item" tabindex="-1"><a role="button" hotrep="hp.header.price" href="https://buy.cloud.tencent.com/pricing">定价</a></li><li class="pls-nav-item" tabindex="-1"><a role="button" hotrep="hp.header.ecenter" href="https://cloud.tencent.com/act/pro/center">企业中心</a></li><li class="pls-nav-item" tabindex="-1"><a role="button" hotrep="hp.header.market" href="https://market.cloud.tencent.com">云市场</a></li><li class="pls-nav-item" tabindex="-1"><a role="button" hotrep="hp.header.developer" href="https://cloud.tencent.com/landing/developer-ecology">开发者</a></li><li class="pls-nav-item" tabindex="-1"><a role="button" hotrep="hp.header.support" href="https://cloud.tencent.com/act/event/service-support">客户支持</a></li><li class="pls-nav-item" tabindex="-1"><a role="button" hotrep="hp.header.cooperate" href="https://cloud.tencent.com/landing/partner-ecology">合作与生态</a></li><li class="pls-nav-item" tabindex="-1"><a role="button" hotrep="hp.header.learn" href="https://cloud.tencent.com/about">了解腾讯云</a></li></ul></div><div class="pls-nav-top-operation"></div></div><section class="pls-nav-dropdown" style="visibility:hidden;height:0"><div style="height:0;transition:transform ease-in-out .2s, opacity ease-in-out .2s;opacity:0;transform:translate(0, -100%)"><a class="pls-nav-dropdown-close" hotrep="hp.header.close">关闭</a></div></section></div></div> <div id="navigationBarM" class="pls-m-nav"><div class="pls-m-nav-bar"><div class="pls-m-nav-bar-main"><a href="https://cloud.tencent.com/" class="pls-m-nav-logo"></a></div><div class="pls-m-nav-bar-extra"><a class="pls-m-nav-btn" aria-label="搜索"><i class="pls-m-nav-btn-icon search"></i></a><a class="pls-m-nav-btn profile" aria-label="用户"><i class="pls-m-nav-btn-icon user"></i></a><a class="pls-m-nav-btn" aria-label="菜单"><i class="pls-m-nav-btn-icon menu"><span></span><span></span><span></span></i></a></div></div><div class="pls-m-nav-dropdown search" style="display:none"><div class="pls-m-nav-search"><div class="pls-m-nav-search-bar"><input type="text" class="pls-m-nav-search-input" placeholder="请输入搜索的关键词" value=""/><a class="pls-m-nav-search-btn">搜索</a></div></div></div></div></div> <script> window.ISMOBILE = false; </script> <script>window.__language = 'zh'</script> <div id="app-root"> <div class="Home"> <div role="banner" class="developer-hero"> <div class="developer-hero__bg"> <video class="J-developerBannerVideo developer-hero__video" autoPlay muted playsInline loop src="//qcloudimg.tencent-cloud.cn/raw/1ff3e94cb831ccbcb5d6275c4808d911.mp4"></video> </div> <div class="developer-hero__inner"> <div class="developer-hero__cnt"> <h1 class="developer-hero__tit"><span>腾讯云开发者</span></h1> <p class="developer-hero__desc"> 腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈 </p> </div> </div> </div> <section class="tpm1-section"> <div class="tpm1-section__inner"> <header class="tpm1-section__hd"> <h2 class="tpm1-section__title">开发者生态</h2> <div class="tpm1-section__sub"> <span class="tpm1-section__desc">面向开发者的技术分享、实践成长的生态平台</span> </div> </header> <div class="tpm1-section__bd"> <div class="developer-ecology-card"> <div class="developer-ecology-card__text-wrap"> <img class="developer-ecology-card__icon" src="https://cloudcache.tencent-cloud.com/open_proj/proj_qcloud_v2/portal-set/src/projects/Developer/components/EcologyCard/css/img/ecology1.png" alt="" /> <div class="developer-ecology-card__text"> <div class="developer-ecology-card__tit">开发者社区</div> <div class="developer-ecology-card__desc"> 营造云计算技术生态圈,打造技术分享型社区<a href="https://cloud.tencent.com/developer" class="tp1-link tpm1-link tp1-link--arrow" ><span class="tp1-link__inner">访问开发者社区</span></a > </div> </div> </div> <div class="developer-ecology-card__btn-wrap"> <a href="https://cloud.tencent.com/developer/column" class="tpm1-btn tpm1-btn--white size-l developer-ecology-card__btn"> <span class="tpm1-btn__text">技术文章</span></a ><a href="https://cloud.tencent.com/developer/ask" class="tpm1-btn tpm1-btn--white size-l developer-ecology-card__btn"> <span class="tpm1-btn__text">技术问答</span></a ><a href="https://cloud.tencent.com/developer/video" class="tpm1-btn tpm1-btn--white size-l developer-ecology-card__btn"> <span class="tpm1-btn__text">技术视频</span></a ><a href="https://cloud.tencent.com/developer/salon" class="tpm1-btn tpm1-btn--white size-l developer-ecology-card__btn"> <span class="tpm1-btn__text">技术沙龙</span></a ><a href="https://cloud.tencent.com/developer/learning" class="tpm1-btn tpm1-btn--white size-l developer-ecology-card__btn"> <span class="tpm1-btn__text">学习中心</span></a ><a href="https://cloud.tencent.com/developer/teams" class="tpm1-btn tpm1-btn--white size-l developer-ecology-card__btn"> <span class="tpm1-btn__text">产品团队</span> </a> </div> </div> <div class="developer-ecology-card"> <div class="developer-ecology-card__text-wrap"> <img class="developer-ecology-card__icon" src="https://cloudcache.tencent-cloud.com/open_proj/proj_qcloud_v2/portal-set/src/projects/Developer/components/EcologyCard/css/img/ecology2.png" alt="" /> <div class="developer-ecology-card__text"> <div class="developer-ecology-card__tit">产业互联网学堂</div> <div class="developer-ecology-card__desc"> 面向广大云生态用户的一站式学习成长平台<a href="https://cloud.tencent.com/edu" class="tp1-link tpm1-link tp1-link--arrow" ><span class="tp1-link__inner">访问产业互联网学堂</span></a > </div> </div> </div> <div class="developer-ecology-card__btn-wrap"> <a href="https://cloud.tencent.com/edu/learning" class="tpm1-btn tpm1-btn--white size-l developer-ecology-card__btn"> <span class="tpm1-btn__text">在线课程</span></a ><a href="https://cloud.tencent.com/edu/training" class="tpm1-btn tpm1-btn--white size-l developer-ecology-card__btn"> <span class="tpm1-btn__text">认证考试</span></a ><a href="https://cloud.tencent.com/edu/learning/live" class="tpm1-btn tpm1-btn--white size-l developer-ecology-card__btn"> <span class="tpm1-btn__text">大咖直播</span></a ><a href="https://cloud.tencent.com/developer/labs" class="tpm1-btn tpm1-btn--white size-l developer-ecology-card__btn"> <span class="tpm1-btn__text">动手实验</span></a ><a href="https://cloud.tencent.com/edu/talents" class="tpm1-btn tpm1-btn--white size-l developer-ecology-card__btn"> <span class="tpm1-btn__text">优才计划</span></a ><a href="https://cloud.tencent.com/edu/training/enterprise" class="tpm1-btn tpm1-btn--white size-l developer-ecology-card__btn"> <span class="tpm1-btn__text">企业培训</span> </a> </div> </div> </div> </div> </section> <section class="tpm1-section bg-gray"> <div class="tpm1-section__inner"> <header class="tpm1-section__hd"> <h2 class="tpm1-section__title">开源生态</h2> <div class="tpm1-section__sub"> <span class="tpm1-section__desc">汇聚天下开源之力,建设腾讯开源生态</span> </div> </header> <div class="tpm1-section__bd"> <div class="developer-open-source"> <div class="developer-open-source__primary"> <div class="developer-open-source__primary-tit">腾源会</div> <div class="developer-open-source__primary-desc"> 腾讯云成立的汇聚开源项目、 开源爱好者、开源领导者的 开放社区 </div> <a href="https://cloud.tencent.com/act/pro/weopen-home" class="tpm1-btn tpm1-btn--white-hole tpm1-btn--icon developer-open-source__primary-btn" > <span class="tpm1-btn__text">腾源会</span ><span class="tpm1-btn__icon" ><svg width="16" height="16" viewBox="0 0 16 16" fill="none"> <path d="M5.87891 3.75732L10.1215 7.99996L5.87891 12.2426" stroke="#fff" stroke-width="1.5" ></path></svg></span> </a> </div> </div> </div> </div> </section> <section class="tpm1-section developer-tools-section"> <div class="tpm1-section__inner"> <header class="tpm1-section__hd"> <h2 class="tpm1-section__title">开发者工具</h2> <div class="tpm1-section__sub"> <span class="tpm1-section__desc">为开发者提供丰富的生态工具,助您无忧上云</span> </div> </header> <div class="tpm1-section__bd"> <div class="tp1-grid__row tp1-grid--gutter-5n developer-tools-list" style="margin-left: -10px; margin-right: -10px" > <div class="tp1-grid__col tp1-grid__col--12 tp1-grid__col--pad-24 tp1-grid__col--phone-24" pad="24" phone="24" style="padding-left: 10px; padding-right: 10px" > <div class="developer-tools__card"> <a class="developer-tools__card-mask" href="https://cloud.tencent.com/document/product"></a> <div class="developer-tools__card-tit">帮助文档</div> <div class="developer-tools__card-desc">丰富的文档资源,助你快速上云</div> <span class="tp1-link tpm1-link developer-tools__card-link tp1-link--arrow" ><span class="tp1-link__inner">前往帮助文档</span></span > <div class="developer-tools__card-icon icon-doc"></div> </div> </div> <div class="tp1-grid__col tp1-grid__col--12 tp1-grid__col--pad-24 tp1-grid__col--phone-24" pad="24" phone="24" style="padding-left: 10px; padding-right: 10px" > <div class="developer-tools__card"> <a class="developer-tools__card-mask" href="https://cloud.tencent.com/api"></a> <div class="developer-tools__card-tit">API 中心</div> <div class="developer-tools__card-desc"> 腾讯云 API 全新升级 3.0,助您快捷使用腾讯云产品 </div> <span class="tp1-link tpm1-link developer-tools__card-link tp1-link--arrow" ><span class="tp1-link__inner">前往 API 中心</span></span > <div class="developer-tools__card-icon icon-api"></div> </div> </div> <div class="tp1-grid__col tp1-grid__col--12 tp1-grid__col--pad-24 tp1-grid__col--phone-24" pad="24" phone="24" style="padding-left: 10px; padding-right: 10px" > <div class="developer-tools__card"> <a class="developer-tools__card-mask" href="https://cloud.tencent.com/document/sdk"></a> <div class="developer-tools__card-tit">SDK 中心</div> <div class="developer-tools__card-desc">开发者语言与SDK</div> <span class="tp1-link tpm1-link developer-tools__card-link tp1-link--arrow" ><span class="tp1-link__inner">前往 SDK 中心</span></span > <div class="developer-tools__card-icon icon-sdk"></div> </div> </div> <div class="tp1-grid__col tp1-grid__col--12 tp1-grid__col--pad-24 tp1-grid__col--phone-24" pad="24" phone="24" style="padding-left: 10px; padding-right: 10px" > <div class="developer-tools__card"> <a class="developer-tools__card-mask" href="https://cloud.tencent.com/document/product/440"></a> <div class="developer-tools__card-tit">命令行工具</div> <div class="developer-tools__card-desc"> 可以快速调用腾讯云 API 来管理您的腾讯云资源 </div> <span class="tp1-link tpm1-link developer-tools__card-link tp1-link--arrow" ><span class="tp1-link__inner">前往命令行工具</span></span > <div class="developer-tools__card-icon icon-terminal"></div> </div> </div> </div> </div> </div> </section> </div> </div> <script>window.__CDN_DOMAIN = 'cloudcache.tencent-cloud.com'</script> <script>window.__wxMfaQrcodeMode = 'weapp'</script> <script src="//cloudcache.tencent-cloud.com/qcloud/main/scripts/release/common/vendors/babel/polyfill.6.26.min.js?max-age=31536000"></script> <script src="//cloudcache.tencent-cloud.com/qcloud/main/scripts/release/common/base.8b487abfb81ba7727082.js?max_age=31536000"></script> <script src="//cloudcache.tencent-cloud.com/qcloud/main/scripts/release/common/deps.e444cf4eea9d0e0908c0.js?max_age=31536000"></script> <script> window.__QCPortalContext__ = { version: "0.5.0", resource: {}, $getCurrServerTime: (function(s, c) {return function(){return +new Date()+s-c;}})(1732367709340, +new Date()), } </script> <script src="https://cloudcache.tencent-cloud.com/qcloud/portal/kit/full.c9aa1f7ce.js"></script> <script> if (window.QCPortalKit) { window.QCPortalKit.init({"version":"v2","topNav":{"theme":"air"},"site":{"replaceUrlTLDScope":"page"},"footer":{"disable":false},"floatBar":{"disable":false}}) } </script> <script> $('.J-developerBannerVideo').on('error', function() { $('.J-developerBannerVideo').hide(); }); </script> </body> </html>