2016-11-16 101 views
0

我有一個計算引擎和谷歌雲存儲一起工作。 計算引擎運行tomcat允許瀏覽器加載頁面並從谷歌雲存儲中獲取圖像。允許大通從Google雲端存儲下載圖片?

我怎麼能允許HTML頁面(由servlet生成)從谷歌雲存儲在圖像不是公共共享下載幾個圖像?

我期望的是,當broswers下載html頁面時,它會直接從雲存儲請求圖像,但是我怎樣才能允許broswer在沒有使圖像公共共享的情況下做到這一點?

感謝

回答

1

這是棘手,但可能。如果您想管理某種可以查看GCS映像的授權方案,那麼您需要一項服務,該服務可以向您的服務決定授權的各方出售短期簽名URL。然後,將URL嵌入動態生成的HTML頁面的圖像標記中,或者使用JavaScript從服務器獲取URL。

的gcloud-Java庫具有用於生成這樣一個URL一個signURL方法。

另一種選擇是簡單地混淆圖像的URL的東西難以猜測並經常轉動他們每。

+0

謝謝,它解決了我的問題,謝謝 –

+0

網址URL = storage.signUrl( \t \t \t \t \t \t \t BlobInfo.builder( 「桶」, 「img.jpg」)。建(), \t \t \t \t \t \t \t 10, \t \t \t \t \t \t \t TimeUnit.SECONDS, \t \t \t \t \t \t \t SignUrlOption.signWith(ServiceAccountCredentials.fromStream(新的FileInputStream(的keyPath))) \t \t \t \t \t \t \t); \t \t \t \t \t \t \t \t \t \t \t \t字符串imgPath = url.toString(); \t \t \t \t \t //out.write("Img path =「+ imgPath +」
「); \t \t \t \t \t \t \t \t \t \t \t \t out.write( 「
」); –

相關問題