2017-07-17 47 views
1

我試圖顯示存儲在iframe中的S3存儲桶中的.doc文件,這要感謝google doc viewer api。谷歌文檔查看器不適用於亞馬遜s3簽名的網址

我已經做了一些研究,發現this,我想在這裏適用:

var encodedUrl = encodeURIComponent("http://myAPI.com/1d293950-67b2-11e7-8530-318c83fb9802/example.docx?X-Amz-Algorithm=AWS4-HMAC-SHA256%26X-Amz-Credential=GNRO0BLDYAJP1FU7ALIS%2F20170717%2Fus-east-1%2Fs3%2Faws4_request%26X-Amz-Date=20170717T145429Z%26X-Amz-Expires=600%26X-Amz-SignedHeaders=host%26X-Amz-Signature=ee556c5c92427bb38265507218a701660936bc2774ecc919648bb2d780a2619f"); 

$scope.selectedSource = $sce.trustAsResourceUrl(
    "http://docs.google.com/gview?url=" + encodedUrl + "&embedded=true" 
); 

的iFrame的樣子:

<iframe ng-src="{{selectedSource}}" frameborder="no" style="width:100%;height:100%"></iframe> 

但是我還是從一個「無預覽可用」瀏覽器裏面的iframe,任何想法爲什麼?

我指定簽名的url(未編碼)在我將其粘貼到瀏覽器中時起作用,因此我擁有所需的所有權限。

+0

這工作我利用S3預先簽署網址,打開一個新的瀏覽器選項卡,然後去一個稍微不同的URL私人文檔:'的https://文檔.google.com/viewer?url ='+冗餘網址編碼(這在技術上是你在做什麼,看起來是正確的)預先簽署的S3 URL(簽名版本4)。替代Google網址被發現[在這裏](https://webapps.stackexchange.com/q/44673/83083)。在嘗試嵌入它之前,您可能想在自己的窗口中測試它,以消除變量。 –

回答