你的bucket創(chuàng)建的時(shí)候是不是設(shè)置了 PolicyKey = 'Transient'? 這里面的對(duì)象只保留24小時(shí)。請(qǐng)看看這個(gè)文檔:
https://developer.autodesk.co...
一般來(lái)說(shuō) Android Studio 會(huì)自動(dòng)安裝 Android SDK,如果出現(xiàn)如題這種情況,很有可能是代理設(shè)置的問(wèn)題,改成全局代理或者使用 VPN,這時(shí)候應(yīng)該就可以正常下載 SDK 了。
net.ipv4.ip_forward開(kāi)了?貼下你的配置啊
用戶文件直接上傳到OSS,然后客戶端直接去加載OSS上面的視頻文件。最好就加上CDN。
我不確定你指的高度是哪一部份,所以我估計(jì)你說(shuō)的是相機(jī)到樓地版的距離,這個(gè)設(shè)置是可以調(diào)整的:
//法1:載入時(shí)設(shè)置:
viewer.loadExtension( 'Autodesk.BimWalk', { cameraDistanceFromFloor: 1.0 } );
//法2:?jiǎn)?dòng) BimWalk 后即時(shí)設(shè)置:
var bimWalkExt = viewer.getExtension( 'Autodesk.BimWalk' );
bimWalkExt.set( 'cameraDistanceFromFloor', 1.0 );
//法3:初始化 Viewer 時(shí)設(shè)置:
var config3d = {
cameraDistanceFromFloor: 1.0,
extensions: [ 'Autodesk.BimWalk' ]
};
var viewer = new Autodesk.Viewing.Private.GuiViewer3D( container, config3d );
希望這對(duì)您有幫助!
原來(lái)是我本地時(shí)間錯(cuò)誤了,調(diào)整之后,就解決了~
基于安全因素?zé)o法從前端獲取 accessToken,故需從后端下手,這時(shí)后有兩種選擇:
通過(guò) ASP.NET 的 API Controller 編寫一個(gè)獲取 Access Token 的 Web API,在這個(gè) Web API 里去調(diào)用 Forge OAuth API 獲取 Access Token,前端 Forge Viewer 這頭通過(guò) AJAX 獲取調(diào)用這個(gè) Web API 獲取 Token,可以參考:
希望這對(duì)您有幫助!
不知道你情況是否跟我一樣
如果你也定義了偽靜態(tài)規(guī)則
偽靜態(tài)規(guī)則改成下面這樣
if (-f $request_filename/index.html) {
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php) {
rewrite (.*) $1/index.php;
}
if (!-f $request_filename) {
rewrite (.*) /index.php;
}
update:
第二次安裝沒(méi)有開(kāi)啟ssl,只不過(guò)同樣開(kāi)始偽靜態(tài),安裝完成后同樣進(jìn)不了后臺(tái),修改偽靜態(tài)規(guī)則就好了
P.S 我是用一鍵lnmp安裝腳本裝的環(huán)境
我的測(cè)試結(jié)果你可以參考下
系統(tǒng):ubuntu
cpu:單核
內(nèi)存:2G
硬盤:50G
帶寬:1M
web服務(wù)器:tomcat
測(cè)試工具:http_load
外網(wǎng)訪問(wèn),tps只有20左右,卡在寬帶那里。內(nèi)網(wǎng)測(cè)試,tps能達(dá)到3000左右
這是因?yàn)椤究s放】等按鈕是在viewer主文件中初始化和加載,而其它的是在對(duì)應(yīng)的extension中處理,所以,單純的操作DOM元素是不行的。需要卸載那個(gè)Extension,viewer.unloadExtension('Autodesk.FirstPerson')。但這樣功能又沒(méi)有了。
所以建議不要只是通過(guò)刪除來(lái)解決,而是可以在初始化viewer的時(shí)候,用Autodesk.Viewing.Viewer3D,而不要Autodesk.Viewing.Private.GuiViewer3D。
viewerApp.registerViewer(viewerApp.k3D, Autodesk.Viewing.Viewer3D);
這樣,viewer缺省不帶任何工具條。你可以自己創(chuàng)建按鈕,對(duì)于【縮放】等功能,直接切換:
Viewer.setActiveNavigationTool('pan')
而對(duì)于【測(cè)量】,【第一人漫游】等,先加載相關(guān)的extension,然后類似的,當(dāng)你的按鈕按下的時(shí)候,切換到對(duì)應(yīng)模式
Viewer.setActiveNavigationTool('firstperson')
如果你并不需要對(duì)應(yīng)功能,那就如前所述,直接卸載extension
你要改用 Autodesk.Viewing.Private.GuiViewer3D 去創(chuàng)建 Viewer 默認(rèn)的工具列跟 ViewCube 才會(huì)出現(xiàn),或者是在使用 Autodesk.Viewing.Viewer3D 的情境通過(guò)下面的代碼創(chuàng)建 ViewCube 和 Toolbar
// ViewCube
const viewCubeUi = new Autodesk.Viewing.Private.ViewCubeUi( viewer );
viewer.viewCubeUi = viewCubeUi;
viewCubeUi.create();
// Toolbar
const toolbar = new Autodesk.Viewing.UI.ToolBar( 'my-awesome-toolbar' );
viewer.toolbar = toolbar;
// Button
var button1 = new Autodesk.Viewing.UI.Button( 'my-orbit-button' );
button1.onClick = function(e) {
var state = button1.getState();
if( state === Autodesk.Viewing.UI.Button.State.INACTIVE ) {
viewer.setActiveNavigationTool( 'orbit' );
button1.setState(Autodesk.Viewing.UI.Button.State.ACTIVE);
} else if( state === Autodesk.Viewing.UI.Button.State.ACTIVE ) {
viewer.setActiveNavigationTool();
button1.setState( Autodesk.Viewing.UI.Button.State.INACTIVE );
}
};
button1.addClass( 'my-orbit-button' );
button1.setToolTip( 'Orbit' );
// SubToolbar
const subToolbar = new Autodesk.Viewing.UI.ControlGroup( 'my-custom-view-toolbar' );
subToolbar.addControl( button1 );
toolbar.addControl( subToolbar );
默認(rèn)工具僅少數(shù)是通過(guò)擴(kuò)展加載例如 Autodesk.Section、Autodesk.FirstPerson, Autodesk.BimWalk,其大多數(shù)都是編寫在 GuiViewer3D 的代碼內(nèi),請(qǐng)到 viewer3d.js 里查找 GuiViewer3D#createUI() 的執(zhí)行思路。
參考:
大概就是說(shuō)在容器內(nèi)部生成的文件需要保存到宿主機(jī)上對(duì)吧?
可以通過(guò)掛載數(shù)據(jù)卷的方式實(shí)現(xiàn)你的需求,創(chuàng)建容器的使用使用-v參數(shù),或則在dockerfile中定義volumes。
比如:
docker run --net=none --privileged=true -d --name etcd -v /data/srcdir:/data/dstdir etcd -name discovery
這樣如果容器內(nèi)部在/data/dstdir目錄下產(chǎn)生的數(shù)據(jù)會(huì)保存在宿主機(jī)的/data/srcdir目錄里面的
console.log(vm.dataClassify[i].id)
在執(zhí)行 npm start 運(yùn)行網(wǎng)站前,你必需使用先透過(guò)這兩行命令行指令設(shè)置 Client Id 跟 Client Secret:
set FORGE_CLIENT_ID=你的Client Id
set FORGE_CLIENT_SECRET=你的Client Secret
如果你是使用 PowerShell 的話,要改用這個(gè)方式:
$env:FORGE_CLIENT_ID="你的Client Id";
$env:FORGE_CLIENT_SECRET="你的Client Secret";修改屬性面板有幾種方法,
var propertyPanel = _viewer.getPropertyPanel(true)
propertyPanel.setTitle('My Panel')
propertyPanel.addProperty('test', 'john', 'new cat', null)
propertyPanel.setVisible(true)
AutodeskNamespace('Viewing.ClassroomTrainning')
Viewing.ClassroomTrainning.AdnPropertyPanel = function (viewer) {
var _panel = this
var _viewer = viewer
var _selectedNodeId = ''
Autodesk.Viewing.Extensions.ViewerPropertyPanel.call(
_panel,
_viewer)
_panel.setNodeProperties = function (nodeId) {
Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype.setNodeProperties.call(
_panel,
nodeId)
_selectedNodeId = nodeId
}
_panel.setProperties = function (properties) {
Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype.setProperties.call(
_panel, properties);
var insTree = _viewer.model.getInstanceTree();
var nodeName = insTree.getNodeName(_selectedNodeId);
$.ajax({
url: '/db/price/'+nodeName,
type: 'GET',
success: function (data) {
console.log('successfull get price: ' + data)
_panel.addProperty(
'Node Price', // property name
data, // property value
'Database Information') // group name
}
})
}
}
Viewing.ClassroomTrainning.AdnPropertyPanel.prototype =
Object.create(
Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype)
Viewing.ClassroomTrainning.AdnPropertyPanel.prototype.constructor =
Viewing.ClassroomTrainning.AdnPropertyPanel
然后,將重載后的屬性面板設(shè)置為當(dāng)前的屬性面板,修改模型結(jié)構(gòu)的點(diǎn)擊事件來(lái)使用自定義的屬性面板:
Viewing.ClassroomTrainning.Extension.prototype.onGeometryLoaded = function () {
var panel = new Viewing.ClassroomTrainning.AdnPropertyPanel(_viewer)
_viewer.setPropertyPanel(panel)
// Add onClick event for Model Structure Panel
var structruePanel = _viewer.modelstructure
structruePanel.onClick = _self.onModelStructureClick
}
Viewing.ClassroomTrainning.Extension.prototype.onModelStructureClick = function (node, e) {
var propertyPanel = _viewer.getPropertyPanel(true)
if (propertyPanel && propertyPanel.isVisible()) {
propertyPanel.setNodeProperties(node)
}
}
詳細(xì)可參考代碼 https://github.com/JohnOnSoft...
建議你,
首先打開(kāi) php.ini 搜索 display_errors,把 Off 修改為 On,開(kāi)啟 php 錯(cuò)誤提示
看看具體報(bào)什么錯(cuò)誤,再去解決。
比如存在的問(wèn)題:composer沒(méi)有安裝依賴,目錄沒(méi)有寫權(quán)限,開(kāi)啟了錯(cuò)誤提示,看看錯(cuò)誤再說(shuō)
更具體信息請(qǐng)見(jiàn) 阿里云Web播放器在線文檔,其中4.3介紹了清晰度的設(shè)置。
服務(wù)提供者。
微服務(wù)架構(gòu)中會(huì)涉及到多個(gè)服務(wù)間的調(diào)用。一個(gè)服務(wù)的不可用可能會(huì)引起整個(gè)系統(tǒng)的級(jí)聯(lián)故障。熔斷器就是放在各個(gè)服務(wù)間的一個(gè)保護(hù)者,用來(lái)保護(hù)服務(wù)高可用的。
從日志上看應(yīng)該是由于類加載問(wèn)題導(dǎo)致filter沒(méi)有成功啟動(dòng)。
日志不是很全,看不到是哪個(gè)類丟失。
一樣的,即便是阿里云服務(wù)器,你也得購(gòu)買開(kāi)發(fā)環(huán)境的機(jī)器和生產(chǎn)環(huán)境的機(jī)器,至于怎么連接?ssh 登錄不就好了
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。