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

时间:2019-07-24 15:36:21

标签: google-cloud-platform

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

wget http://some.url.com/some/file.tar 

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

gsutil cp file.tar gs://the-bucket/

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

4 个答案:

答案 0 :(得分:1)

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

在最高级别,此功能使您可以定义Google外部的数据源,例如URL或AWS S3存储上可用的数据,然后在后台计划将其复制到Google Cloud Storage。该功能似乎可以执行您想要的任务...数据直接从Internet来源复制到GCS。


一个完全不同的故事是GCP本身提供计算功能。这意味着您可以通过简单的机制(例如VM,Cloud Functions或Cloud Run)在GCP上运行自己的逻辑。这意识到我们可以执行代码以将GCP本身中的基于Internet的数据下载到本地临时文件,从而为我们提供了帮助。然后可以将该文件从GCP中上传到GCS中。最终,将在GCP中存储的数据不会从源头到Google遍及任何地方。一旦从源中检索出数据,从GCP计算到GCS存储的数据传输速率应该是最佳的,因为它是专门通过Google内部的超高速网络传递的。

答案 1 :(得分:0)

我发现了一个similar post,其中的解释是,您可以从Web下载文件,然后仅通过一个命令行将其复制到存储桶中:

curl http://some.url.com/some/file.tar | gsutil cp - gs://YOUR_BUCKET_NAME/file.tar

我在自己的存储桶中尝试过,它可以正常工作,所以我希望这是您所期望的。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

对于大文件,one-liners 经常会失败,Google Storage Transfer Service 也是如此。然后需要 Kolban 答案的第二部分,我想我会添加更多细节,因为找出实际下载到谷歌计算实例并上传到存储桶的最简单方法可能需要时间。

对于许多用户来说,我相信最简单的方法是从 Google AI Platform 打开笔记本并执行以下操作:

restaurant.address + ', ' + restaurant.city + ...

无需设置环境,受益于笔记本的便利性,如果笔记本使用相同的 GCP 帐户托管,客户端将可以自动访问您的存储桶。