如何从Chrome扩展程序下载公开的Google云端硬盘文件?

时间:2013-11-20 14:11:33

标签: javascript google-chrome google-chrome-extension xmlhttprequest permission-denied

我有像这样的公开Goog​​le云端硬盘文件:https://docs.google.com/uc?id=0B8G77eDgeMdwMmkwcnA5eUV2M0U&export=download

我想从Chrome扩展程序下载该文件。

我已将这些网址添加到扩展程序清单中的“permissions”元素中(尝试下载文件时有一些重定向,我尝试将它们全部添加):“https://*.docs.googleusercontent.com /“,”https://docs.google.com/“,”http://docs.google.com/“,”https://accounts.google.com/“,”https://www.google.com/

当我尝试下载该文件时,Chrome会返回以下错误:

XMLHttpRequest cannot load https://docs.google.com/nonceSigner?nonce=s35adai1lp052&continue=https://do…Ddownload%26h%3D16653014193614665626&hash=inkfclb76vcru6uuoqkfp274hk5joqk9. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. 

我似乎已经允许下载相关网址。

如果我添加<all_urls>权限,则下载成功。

知道我需要添加哪些权限?提前谢谢。

2 个答案:

答案 0 :(得分:3)

使用例如wget并查看报告的重定向,您可以看到最后一个主机类似于:

doc-0c-80-docs.googleusercontent.com

第一部分可能是变量,URL的主机部分中的通配符只能匹配主机名的整个部分。因此,您应该将以下内容添加到匹配模式中:

*.googleusercontent.com

答案 1 :(得分:1)

您至少需要以下最低限度才能访问云端硬盘文件:

  • *://drive.google.com/*
  • *://*.googleusercontent.com/*