要上传到Google云端硬盘的网址
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了要上传到Google云端硬盘的网址相关的知识,希望对你有一定的参考价值。
我可以使用任何网址直接上传到Google云端硬盘吗?例如,我的服务器http://example.com/file.doc
上有一个文件,我想将其上传到Google云端硬盘,例如:http://google.com/?upload=http://example.com/file.doc
这样做的方法是什么?
这个解决方法怎么样?遗憾的是,没有在Google API上未经授权直接上传文件的网址。所以我建议一个解决方法。我认为这种方法可能很容易实现你想做的事情。请将此视为几个答案之一。
我认为使用Web Apps,您可以实现您想要做的事情。此解决方法的流程如下。
流 :
1. Sample script
- 创建独立脚本。 您也可以在绑定脚本上执行此流程。这里使用独立脚本。
- 复制并粘贴以下示例脚本,然后保存。
请运行doGet(e)
。这样,虽然发生了错误,但可以完成授权过程。
function doGet(e) {
var blob = UrlFetchApp.fetch(e.parameters.url).getBlob();
var id = DriveApp.createFile(blob).getId();
return ContentService.createTextOutput(id);
}
2. Deploy Web Apps.
- 在脚本编辑器的菜单栏上,选择“发布” - >“部署为Web App”。
- 在“项目版本:”处,输入字符串。
- 在“执行应用程序:”中,选择“我”。
- 在“谁有权访问该应用:”中,选择“任何人,甚至匿名”。
- 单击“部署”按钮。
- 请复制“当前网络应用网址:”。网址是
https://script.google.com/macros/s/#####/exec
。 您可以使用此URL上传文件。 - 单击“确定”。
3. Upload a file from URL
- 查询参数是
url=http://example.com/file.doc
。 - 您可以使用浏览器访问此URL
file.doc
上传https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc
。 在此示例脚本中,将在Google云端硬盘的根文件夹中创建上传文件。
注意 :
- 关于Web Apps,如果您更新脚本,请将Web Apps重新部署为新版本。这样,反映了更新的脚本。
- 此示例脚本非常简单。所以请根据您的环境进行修改。那时,如果你有任何问题,请随时告诉我。
- 在这种情况下,当用户使用Web Apps URL上传文件时,文件会上传到部署了Web Apps的所有者的Google云端硬盘。因为脚本仅作为所有者运行。
如果这对你没用,我很抱歉。
编辑:
我知道你想使用php和javascript从URL上传文件(我在这里使用了jQuery。)。如果我的理解有误,请告诉我。 Google Apps脚本的doGet(e)
需要使用这些脚本。首先,请复制并粘贴doGet(e)
并部署Web应用程序。对于这两个脚本,Google Drive上创建的文件的文件ID将作为响应返回。
Upload by php
<?php
$url = 'https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl,CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($curl);
echo $response;
curl_close($curl);
?>
Upload by jQuery
$.get("https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc", function(res) {
console.log(res);
});
References :
编辑2:
如果您希望用户将文件上传到自己的Google云端硬盘,请按以下流程部署Web Apps。
流 :
1. Sample script
- 创建独立脚本。 您也可以在绑定脚本上执行此流程。这里使用独立脚本。
- 复制并粘贴以下示例脚本,然后保存。
请运行doGet(e)
。这样,虽然发生了错误,但可以完成授权过程。
function doGet(e) {
var blob = UrlFetchApp.fetch(e.parameters.url).getBlob();
var id = DriveApp.createFile(blob).getId();
return ContentService.createTextOutput(id);
}
2. Deploy Web Apps.
- 在脚本编辑器的菜单栏上,选择“发布” - >“部署为Web App”。
- 在“项目版本:”处,输入字符串。
- 在“将应用程序执行为:”中,选择“用户访问Web应用程序”。
- 在“谁有权访问该应用:”中,选择“任意人”。
- 单击“部署”按钮。
- 请复制“当前网络应用网址:”。网址是
https://script.google.com/macros/s/#####/exec
。 您可以使用此URL上传文件。 - 单击“确定”。
3. Upload a file from URL
- 查询参数是
url=http://example.com/file.doc
。 - 您可以使用浏览器访问此URL
file.doc
上传https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc
。 在此示例脚本中,将在Google云端硬盘的根文件夹中创建上传文件。 - 当用户访问
https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc
的URL时,将显示Google的登录屏幕。 - 登录Google后,将显示授权屏幕。
- 通过授权,
file.doc
上传到用户的Google云端硬盘。因为脚本是作为每个用户运行的。
注意 :
- 请仅由一个用户部署Web Apps。并请在所有用户之间共享Web Apps的URL。
- 在这种情况下,用户使用每个用户的浏览器,因为浏览器需要授权过程。
如果您将其用作html,则可以将
https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc
的URL作为链接。 - 关于Web Apps,如果您更新脚本,请将Web Apps重新部署为新版本。这样,反映了更新的脚本。
编辑3:
在使用Web Apps的情况下,使用<div class="google-upload" data-url="http://example.com/file.doc">
时,示例脚本如下所示。
当用户点击Upload
时,file.doc
会上传到用户的云端硬盘。要使用此示例脚本,请使用上面“编辑2”部署Web Apps检索到的URL。
在这种情况下,向每个用户显示登录屏幕。用户需要在登录后授权使用API,方法是单击屏幕上的按钮。这是你想要的吗?
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.js"></script>
</head>
<body>
<div class="google-upload" data-url="http://example.com/file.doc">
<span style="background-color: #ddd">Upload</span>
</div>
<script>
$(function() {
$(".google-upload").click(function() {
var url = "https://script.google.com/macros/s/#####/exec"; // Please input the URL here.
var withQuery = url + "?url=";
window.open(withQuery + $('.google-upload').attr("data-url"), "_blank", "width=600,height=600,scrollbars=1");
});
});
</script>
</body>
</html>
看看Drive Uploader
您可以创建自己的上传器并拥有可以在用户之间分配的唯一URL。
希望能帮助到你
以上是关于要上传到Google云端硬盘的网址的主要内容,如果未能解决你的问题,请参考以下文章