Просмотр Документов Google - Кодировка URL? - PullRequest
1 голос
/ 13 февраля 2011

Я пытаюсь использовать Google Docs Viewer. Кажется, работает нормально для PPT. Пример этого работает:

http://docs.google.com/viewer?url=http://www.microsoft.com/presspass/download/press/2008/02-01yahoo.ppt

В моем приложении у меня есть файлы, загруженные как частные для безопасности. Кажется, это нарушает Документы Google или, возможно, я что-то не так кодирую.

URL, который я отправляю в Google Docs Viewer, выглядит примерно так (пример URL):

https://s3.amazonaws.com/dev/1/attachments/243/1/original/02-01yahoo.ppt?AWSAccessKeyId=17VVCSSS3H6Y3129H3G2&Expires=1294131584&Signature=3141havYNS7JCpsTLE6Ppo3yXkc%3D

Это нарушает Google Docs, оно может принять его. Нужно ли мне кодировать это по-другому?

Спасибо!

Ответы [ 3 ]

0 голосов
/ 13 февраля 2011

Вы не можете. Ваши документы должны быть общедоступными для серверов Google, чтобы просматривать и отображать их. Когда я пытаюсь просмотреть опубликованный вами URL-адрес, появляется сообщение «Отказано в доступе».

Представьте себе, что вы пытаетесь просмотреть powerpoint на вашем компьютере по адресу /Users/you/Desktop/mypowerpoint.ppt. Поскольку это не общедоступный файл, вы не ожидаете, что кто-нибудь сможет его просмотреть, не говоря уже о серверах Google. Google не сможет получить доступ к http://docs.google.com/viewer?url=file:///Users/you/Desktop/mypowerpoint.ppt, так же, как не сможет получить доступ к вашей странице с ограниченным доступом.

Если, однако, указанный вами URL имеет ключ доступа (который, как я вижу, является частью вашего "образца URL"), который позволяет любому, у кого есть этот ключ доступа, просматривать его, он должен работать, и @Mike прав - вам нужно будет закодировать URL-адрес, чтобы не путать параметры URL-адреса Amazon с параметрами Google Docs Viewer. В этом случае, если вы работаете с Ruby on Rails, который предлагает ваша история вопросов, вы захотите использовать

<%=u "http://www.yoururl.com/?someparameter=true&file=myfile.ppt" %>
0 голосов
/ 09 октября 2011

Что ж, вы можете сделать это, если сможете загружать файлы с мгновенного URL-адреса, созданного библиотекой s3 php. Все, что вам нужно сделать, это поместить кодировку 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);
0 голосов
/ 13 февраля 2011

Вам нужно закодировать хотя бы амперсанды (&) в %26

На любом языке, который вы используете, должна быть функция для кодирования URL. В php это urlencode(). В javascript вы захотите использовать encodeURIComponent()

...