OBS文件上傳及臨時(shí)鏈接展示
實(shí)際需求中,我們經(jīng)常有需要將存儲(chǔ)的文件,進(jìn)行預(yù)覽的需要,OBS提供了OBS臨時(shí)鏈接的形式可滿足上述需求。 在這之前需要先設(shè)置一下桶策略。 [對(duì)匿名用戶授予桶的公共讀權(quán)限] (https://support.huaweicloud.com/perms-cfg-obs/obs_40_0031.html)
下面只是關(guān)鍵代碼,詳細(xì)程序,可以參考官網(wǎng)的API DEMO
`
String endPoint = “Endpoint”;
String ak = “Access Key”;
String sk = “Secret Key”;
// 創(chuàng)建ObsClient實(shí)例
ObsClient obsClient = new ObsClient(ak, sk, endPoint);
文件上傳
//obsPath Obs上傳的目錄路徑 比如a/b/c.jpg
obsClient.putObject(“bucketname”, “obsPath”, new ByteArrayInputStream(fileByte));
判斷對(duì)象是否存在,不存在會(huì)報(bào)異常
obsClient.getObjectMetadata(“bucketname”, objectname);
獲取臨時(shí)鏈接
// URL有效期,1年 公有云最長可設(shè)20年
long expireSeconds = 365 * 24 * 3600;
TemporarySignatureRequest request = new TemporarySignatureRequest(HttpMethodEnum.GET, expireSeconds);
String url = response.getSignedUrl();
`
經(jīng)過測試,臨時(shí)鏈接可以展示圖片、視頻等瀏覽器支持格式,WORD文檔等瀏覽器不支持的格式文件會(huì)自動(dòng)下載下來。
https證書問題
默認(rèn)生成的鏈接是https的鏈接,在應(yīng)用重啟后,需要證書鑒權(quán)后才能進(jìn)行展示,這可通過將鏈接設(shè)置為http的鏈接解決。
`
//生成http鏈接
String endPoint = “http://Endpoint”;
`
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。