1
Googleドキュメントビューアapiのおかげで、S3バケットに格納された.docファイルをiframe内に表示しようとしています。Amazon S3の署名付きURLでGoogleドキュメントビューアが動作しない
私はすでに私はここに適用しようとしている、いくつかの研究を行なったし、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 ng-src="{{selectedSource}}" frameborder="no" style="width:100%;height:100%"></iframe>
しかし、私はまだから「プレビュー不可」を取得iframe内のビューア、任意のアイデアなぜですか?
ブラウザに貼り付けたときに署名付きのURL(エンコードされていない)が動作するように指定するので、必要なすべての権限があります。
を使用してプライベートドキュメントを表示するためにこれは、新しいブラウザタブを開いて、わずかに異なるURLにアクセスして、S3から事前に署名したURLを使用して私の作品.google.com/viewer?url = '+事前に署名されたS3 URL(シグネチャバージョン4)で重複してURLエンコードされています(これは技術的には正しいことです)。代わりのGoogle URLが見つかった[ここ](https://webapps.stackexchange.com/q/44673/83083)。変数を取り除くために埋め込む前に、それを独自のウィンドウでテストしたいかもしれません。 –