2016-10-02 98 views
0

嗨我已經查看了相關的問題,但一直沒有找到答案。我想在我的網站上提供谷歌雲存儲的公共鏈接,但它們僅作爲下載鏈接提供。我無法將它們作爲img src加載它們。由於CORS,我無法從我的網頁js下載圖像異步。有沒有解決方法?我想知道我是否可以最初將它們異步定義爲下載鏈接,並強制onclick下載它們,然後使用文件讀取器獲取blob以用作img src。谷歌雲存儲圖像公共鏈接到img src

更新:我發現有一個Chromium問題。我在CORS_Everywhere中使用了Firefox,並且請求起作用。一旦我的網站正式運行,我的圖像是否也有相同的問題?或者說CORS只是不接受本地主機? OR依賴於瀏覽器嗎?

感謝, timecatcher

回答

1

我不是很確定你想要做什麼。這聽起來像是你想要在源代碼位於GCS中的<img>標記中顯示圖像。你不應該需要任何CORS策略或Javascript欺騙,所以我可能會誤解你的問題。

要在網站上包含GCS圖像,請確保圖像是公開可見的,然後只包含一個像這樣的圖像標籤:<img src="https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME" />

編輯與評論答案:

如果您上傳的對象,而不指定內容類型,GCS默認爲一個通用的「應用程序/八位字節流」。網頁瀏覽器通常默認爲保存application/octet-stream響應。確保JPEG圖像具有Content-Type「image/jpeg」,如果您想通過網絡提供它們。

+0

嗨布蘭登,我希望那樣容易。從我的雲存儲帳戶創建的所有鏈接都是媒體可下載的鏈接,而不是人們期望的img src鏈接。 以下是一個示例鏈接: http://storage.googleapis.com/santex-1101.appspot.com/libertyCotton2.jpg – timecatcher

+0

啊!你有一個不同的問題。 GCS不會對正在上傳的對象的內容類型作出假設,並且此特定對象具有「application/octet-stream」的默認內容類型。 Web瀏覽器不知道如何渲染,所以他們下載它。將對象的contentType更改爲「image/jpeg」,它應該可以正常工作。 –

相關問題