给定一个指向大文件的 URL,是否有一种快捷方式可以将该文件放入存储桶,而无需将其下载到本地然后上传?
除了构建一个执行任务的 docker 镜像并以某种方式在 GCP 中运行它之外,有没有更简单的方法可以做到这一点?
答案1
正如在关联
1: 您可以使用 curl 命令将数据直接流式传输到存储桶中来完成此操作。
curl http://speedtest.tele2.net/10GB.zip | gsutil cp -gs://YOUR_BUCKET_NAME/10GB.zip
2: 小于 4.6 GB 的文件。
原始方法:只要您的下载量小于 4.6 GB,此方法就有效。启动 Cloud Shell(登录 GCP 中的项目后,右上角的第一个图标)并使用 wget 下载所需的文件。例如,要下载 7-Zip,请输入:wget https://www.7-zip.org/a/7z1805-x64.exe现在,您可以使用 gsutil 命令将文件复制到 Google Cloud Storage 存储桶中:
gsutil cp ./7z1805-x64.exe gs://your_bucket_name/
3: 大于 4.6 GB 的文件。
在您的 Cloud Shell 用户主目录中创建目录
mkdir ~/mybucket
现在使用 gcsfuse 将您的存储桶挂载到该目录中:
gcsfuse bucket_name ~/mybucket
将当前目录更改为挂载点目录:(
cd mybucket
如果您想运行“df -h .”来查看该挂载点有多少空间)现在使用 wget 将文件直接放入您的存储桶中(示例使用来自网络上的 10GB 文件):
wget https://speed.hetzner.de/10GB.bin
答案2
Google Cloud Storage 不提供从 URL 加载对象的功能。
您必须编写自己的代码,使用 CLI 或托管服务,例如存储转移服务