gpt4 book ai didi

google-apps-script - 上传到 Google Drive 的 URL

转载 作者:行者123 更新时间:2023-12-03 07:45:14 26 4
gpt4 key购买 nike

有没有我可以用来直接上传到 Google Drive 的 URL?例如,我的服务器上有一个文件 http://example.com/file.doc我想将它上传到 Google 云端硬盘,例如:http://google.com/?upload=http://example.com/file.doc
这样做的方法是什么?

最佳答案

这个解决方法怎么样?不幸的是,Google API 上没有用于未经授权直接上传文件的 URL。所以我提出了一个解决方法。我认为这种方法可能很容易实现您想要做的事情。请将此视为几个答案之一。
我认为通过使用 Web Apps,您可以实现您想做的事情。此变通方法的流程如下。
流动 :
1. 示例脚本

  • 创建一个独立的脚本。
  • 您也可以在绑定(bind)脚本中执行此流程。这里使用了一个独立的脚本。

  • 复制并粘贴以下示例脚本,然后保存。

  • 请运行 doGet(e) .这样,即使发生错误,也可以完成授权过程。
    function doGet(e) {
    var blob = UrlFetchApp.fetch(e.parameters.url).getBlob();
    var id = DriveApp.createFile(blob).getId();
    return ContentService.createTextOutput(id);
    }
    2. 部署 Web 应用程序。
  • 在脚本编辑器的菜单栏中,选择发布 -> 部署为 Web 应用程序。
  • 在“项目版本:”中,输入字符串。
  • 在“将应用程序执行为:”处,选择“我”。
  • 在“谁有权访问应用程序:”中,选择“任何人,甚至匿名”。
  • 单击“部署”按钮。
  • 请复制“当前网络应用程序 URL:”。网址是 https://script.google.com/macros/s/#####/exec .
  • 您可以使用此 URL 上传文件。

  • 单击“确定”。

  • 3. 从 URL 上传文件
  • 查询参数为 url=http://example.com/file.doc .
  • 您可以上传file.doc通过访问此 URL https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc使用您的浏览器。
  • 在此示例脚本中,上传文件是在 Google Drive 的根文件夹中创建的。


  • 笔记 :
  • 关于 Web Apps,如果您更新脚本,请将 Web Apps 重新部署为新版本。由此,更新的脚本被反​​映。
  • 这个示例脚本非常简单。因此,请将此修改为您的环境。届时,如果您有任何问题,请随时告诉我。
  • 在这种情况下,当用户使用 Web Apps URL 上传文件时,文件将上传到部署 Web Apps 的所有者的 Google Drive。 因为脚本作为唯一的所有者运行。

  • 如果这对你没有用,我很抱歉。
    编辑 :
    我知道您想使用 php 和 javascript 从 URL 上传文件(我在这里使用了 jQuery。)。如果我的理解有误,请告诉我。 doGet(e)使用这些脚本需要 Google Apps 脚本。首先,请复制粘贴 doGet(e)并部署 Web 应用程序。对于这两个脚本,在 Google Drive 上创建的文件的文件 ID 作为响应返回。
    通过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);
    ?>
    通过 jQuery 上传
    $.get("https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc", function(res) {
    console.log(res);
    });
    引用 :
  • cURL Functions
  • jQuery.get()

  • 编辑2:
    当您想让用户上传文件到自己的 Google Drive 时,请按以下流程部署 Web Apps。
    流动 :
    1. 示例脚本
  • 创建独立脚本。
  • 您也可以在绑定(bind)脚本中执行此流程。这里使用了一个独立的脚本。

  • 复制并粘贴以下示例脚本,然后保存。

  • 请运行 doGet(e) .这样,即使发生错误,也可以完成授权过程。
    function doGet(e) {
    var blob = UrlFetchApp.fetch(e.parameters.url).getBlob();
    var id = DriveApp.createFile(blob).getId();
    return ContentService.createTextOutput(id);
    }
    2. 部署 Web 应用程序。
  • 在脚本编辑器的菜单栏中,选择发布 -> 部署为 Web 应用程序。
  • 在“项目版本:”中,输入字符串。
  • 在“将应用程序执行为:”处,选择 “用户访问 Web 应用程序” .
  • 在“谁有权访问应用程序:”中,选择 “任何人” .
  • 单击“部署”按钮。
  • 请复制“当前网络应用程序 URL:”。网址是 https://script.google.com/macros/s/#####/exec .
  • 您可以使用此 URL 上传文件。

  • 单击“确定”。

  • 3. 从 URL 上传文件
  • 查询参数为 url=http://example.com/file.doc .
  • 您可以上传file.doc通过访问此 URL https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc使用您的浏览器。
  • 在此示例脚本中,上传文件是在 Google Drive 的根文件夹中创建的。

  • 当用户访问https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc的URL时,将显示 Google 的登录屏幕。
  • 登录 Google 后,将显示授权屏幕。
  • 经授权, file.doc上传到用户的 Google Drive。 因为脚本是作为每个用户运行的。

  • 笔记 :
  • 请仅由一名用户部署 Web 应用程序。并请在所有用户之间共享 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 应用程序检索到的 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>

    关于google-apps-script - 上传到 Google Drive 的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47833728/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com