如何将文件从互联网直接下载到 Google Cloud 存储桶

bsa*_*var 6 google-cloud-platform

我想从互联网上直接下载一个超过20GB的文件到google云存储桶中。就像在本地命令行中执行以下操作一样:

wget http://some.url.com/some/file.tar 
Run Code Online (Sandbox Code Playgroud)

我拒绝将文件下载到我自己的计算机上,然后使用以下命令将文件复制到存储桶中:

gsutil cp file.tar gs://the-bucket/
Run Code Online (Sandbox Code Playgroud)

目前我正在尝试(就在此时)使用 datalab 下载文件,然后将文件从那里复制到存储桶。

Kol*_*ban 8

与 Google Cloud Storage 相关的 Google Cloud Platform 的一项功能是称为“存储传输服务”的功能区域。此处提供了相关文档。

在最高级别上,此功能允许您定义 Google 外部的数据源,例如作为 URL 或 AWS S3 存储上可用的数据,然后安排在后台将其复制到 Google 云存储。该功能似乎执行您想要的任务...数据直接从互联网源复制到 GCS。


一个完全不同的故事是 GCP 本身提供计算功能的认识。这意味着您可以通过虚拟机、Cloud Functions 或 Cloud Run 等简单机制在 GCP 上运行自己的逻辑。这对我们在这个故事中有所帮助,因为我们意识到我们可以执行代码将基于互联网的数据GCP 本身下载到本地临时文件。然后可以将该文件从 GCP 内上传到 GCS。最终进入 GCP 的数据从来没有从源头流向 Google。从源检索数据后,从 GCP 计算到 GCS 存储的数据传输速率应该是最佳的,因为它仅通过 Google 内部超高速网络传输。


小智 7

您可以curl http://some.url.com/some/file.tar | gsutil cp - gs://YOUR_BUCKET_NAME/file从 GCP 上的 cloud shell 内部执行该命令。这样它就不会使用您自己的网络并完全保留在 GCP 中。