将 Google Cloud Storage 中的文件添加到云端硬盘

Flo*_*son 8 google-api google-cloud-storage google-drive-api google-cloud-platform

我正在 NodeJS 中开发后端服务。它通过请求临时链接并将此链接发送到第三方分析服务来处理来自 Google Cloud Storage 的图像。我还希望将图像添加到共享的 Google Drive 文件夹中。是否有任何可能的方法可以轻松做到这一点(例如,通过使用 Drive API 并将链接发布到文件,而不是下载文件并随后上传)。换句话说:Drive API 是否接受文件链接,而不是上传文件?或者有没有其他聪明的方法可以轻松地将 Google Cloud 共享到云端硬盘(因为它都是 Google 服务)。

谢谢

Jak*_*tný 10

现在最好的方法是使用 Google Colab notebook:

  1. 创建一个Google Colab笔记本并连接到您的 GCP 存储桶并将 Google Drive 安装到它:
# authenticate
from google.colab import auth
auth.authenticate_user()

# set your gcp project
!gcloud config set project my-project

# mount your drive
from google.colab import drive
drive.mount('/content/drive')
Run Code Online (Sandbox Code Playgroud)
  1. 运行gsutil命令将您的 GCP 存储数据复制到安装的驱动器
!gsutil -q -m cp -r gs://my-bucket-name drive /content/drive/My\ Drive/
Run Code Online (Sandbox Code Playgroud)

  • Colab 中的 Google Drive 挂载似乎会缓冲磁盘上的写入,因此如果您尝试将大量数据移动到 Drive,您的 colab 实例的驱动器将耗尽空间。至少这是我的经验... (2认同)

Tey*_*yam 1

我已经进行了一些搜索,但是除了下载和上传文件之外,我没有找到将文件从 Google Cloud Storage 添加到 Google Drive 的方法。另外,据我所知,gsutilGoogle Cloud Storage API可以与之交互,也支持在共享到其他存储时下载和上传文件。

而且,正如云存储 - 常见问题中所回答的那样,Google Drive 和 Google Cloud Storage 是两种不同的存储服务,两者都允许以编程方式访问其功能,但 API 的目标却截然不同。

但是,您可能想尝试使用请求端点,其中您可以通过三个请求端点 (URI) 访问 Google Cloud Storage。您使用哪一种取决于您正在执行的操作。

重要提示:本页描述的 Google Cloud Storage URI 可能会发生变化。

您可以使用以下 URL 来访问对象:

XML API

storage.googleapis.com/<bucket>/<object> <bucket>.storage.googleapis.com/<object>

JSON接口

www.googleapis.com/download/storage/v1/b/<bucket>/o/<object-encoded-as-URL-path-segment>?alt=media

这些 URL 支持安全套接字层 (SSL) 加密,这意味着您可以使用 HTTP 或 HTTPS。如果您使用 OAuth 2.0 对 Google Cloud Storage API 进行身份验证,则应使用 HTTPS。

您可能还想查看共享和协作以获取更多信息。