javascript - 如何使用客户端 Javascript 通过 API 将跨域文件导入 Google Drive?
问题描述
我们正在尝试在客户端 Web 应用程序中从 URL 获取文件到 Google Drive。
挑战在于 Javascript 在下载文件时具有跨域限制。结果是,如果我们为 Javascript 提供 URL 列表 - 它无法下载文件然后放入 Google Drive,因为这些文件位于不同的网站上。
作为替代方案,Google Drive 是否具有可通过 Javascript 访问的 API,可以触发该 API 以导致 Drive 从 URL 中拉取文件?如果是这样,怎么做?
注意:这个问题与其他询问如何从Google Drive 获取文件的 SO 问题形成对比。这个问题的重点是如何将跨域文件获取到Google 驱动器。
解决方案
实现这一点的标准方法是让文件的主机服务器支持 CORS。我猜他们没有,你无法控制他们。
Drive 没有从 URL 上传的功能,所以这不是一个选项。
也许最优雅的解决方案是让您实现自己的 Drive 代理端点,该端点接受源 URL,从该 URL 获取内容到缓冲区,然后将该缓冲区上传到 Drive。这样的代理编写起来相当简单(少于 50 行代码),并且可以托管在 Appengine、AWS Lambda 等无服务器环境中。
推荐阅读
- excel - 从 SAP GUI 自动导出工作表
- python - 如何检查图像是否有任何文字?
- javascript - 如何从数据表中获取 select2 的值
- android - 如何在 Kotlin 中动态创建 KeyFrameSet
- c# - 如何在 C# Xamarin API 28 中使用带有回调的 PendingIntent 而不是带有 ConnectivityManager.ConnectivityAction 的 Intent?
- python - 堆叠 2-d numpy 数组以在 python 中获取 3-d 数组
- ios - swift将字典转换为jsonString错误:协议类型'Any'不能符合'Encodable',因为只有具体类型才能符合协议
- docker - 无法连接地址为 /0.0.0.0:9000 的容器
- c# - 将包含文本和图像的 PDF 文档附加到电子邮件 C# Windows 应用程序
- ui-automation - 是否存在一种搜索 IUIAutomationElement 指定名称是否包含空格的方法?