Google 文档视图 - URL 编码?
Posted
技术标签:
【中文标题】Google 文档视图 - URL 编码?【英文标题】:Google Docs View - URL Encoding? 【发布时间】:2011-02-13 19:48:37 【问题描述】:我正在尝试使用 Google 文档查看器。它似乎适用于 PPT。示例:
http://docs.google.com/viewer?url=http://www.microsoft.com/presspass/download/press/2008/02-01yahoo.ppt
在我的应用程序中,为了安全起见,我将文件上传为私有文件。这似乎破坏了 Google Docs,或者我编码错误。
我发送给 Google Docs Viewer 的 URL 是这样的(示例 URL):
https://s3.amazonaws.com/dev/1/attachments/243/1/original/02-01yahoo.ppt?AWSAccessKeyId=17VVCSSS3H6Y3129H3G2&Expires=1294131584&Signature=3141havYNS7JCpsTLE6Ppo3yXkc%3D
这破坏了谷歌文档,它可以接受。我需要对此进行不同的编码吗?
谢谢!
【问题讨论】:
+1,有没有人找到任何方法来查看签名的 s3 网址?将&
编码为%26
使文件“拒绝访问”...
【参考方案1】:
您至少需要将与符号 (&
) 编码为 %26
无论您使用哪种语言,都应该有一个用于 url 编码的函数。在 php 中是urlencode()
。在 javascript 中,您需要使用 encodeURIComponent()
【讨论】:
【参考方案2】:你不能。您的文档必须可公开访问,以便 Google 的服务器查看和呈现。当我尝试查看您发布的 URL 时,它给了我“拒绝访问”。
想象一下试图在您的计算机上查看 /Users/you/Desktop/mypowerpoint.ppt 的 powerpoint。由于它不是可公开访问的文件,因此您不会期望任何人都能够查看它,更不用说 Google 的服务器了。 Google 将无法访问 http://docs.google.com/viewer?url=file:///Users/you/Desktop/mypowerpoint.ppt,就像它无法访问您的访问受限页面一样。
但是,如果您提供的 URL 有一个访问密钥(我看到它是您的“示例 url”的一部分),它允许任何拥有该访问密钥的人查看它,它应该可以工作,@Mike 是对的 - - 您需要对其进行 URL 编码,以免将 Amazon 的 URL 参数与 Google Docs Viewer 的参数混淆。在这种情况下,如果你正在使用 Ruby on Rails,你的问题历史建议,你会想要使用
<%=u "http://www.yoururl.com/?someparameter=true&file=myfile.ppt" %>
【讨论】:
一开始我是这么认为的,但我认为 OP 意味着它不适用于我们。 :( 刚才在末尾添加了最后一位:P【参考方案3】:如果您可以从 s3 php 库生成的即时 url 下载文件,您可以这样做。您所要做的就是将 google url + 编码(即时生成的文件)。
如果链接未过期,Google 视图将能够读取它。
就是这样
$generated_file = $obj->gs_prepareS3URL($file);
$encoded_url = rawurlencode($generated_file);
$google_docs = "http://docs.google.com/viewer?url=";
redirect($google_docs.$encoded_url);
【讨论】:
以上是关于Google 文档视图 - URL 编码?的主要内容,如果未能解决你的问题,请参考以下文章
一页上有多个 goog_report_conversion 标记 - Google Adwords 转化跟踪