我想在我的下一个项目中使用Google Cloud 端存储 . 我的目标是跟踪各种网站并收集一些照片 . 至于,我阅读了gsutil的文档;我可以手动将文件下载到我的服务器,并使用gsutil上传谷歌 Cloud 存储 .
下载和上传文件会在我的服务器中产生如此多的流量 . 有没有办法让google Cloud 直接从http下载文件?
Google Cloud 端存储仅直接接受数据 . 没有办法将URL传递给它并将其作为对象保存 .
但是,您没有理由不能自己构建此功能 . 例如,您可以设置一个或多个专用GCE实例,这些实例将加载URL,然后将其保存到GCS . 谷歌不收取网络进入GCE或从GCE进入区域内的GCS的费用,这有所帮助 .
只要下载量小于~4.6 GB,Google Cloud Shell就可以轻松完成此操作 . 启动Cloud Shell(在GCP中登录项目后,右上角的第一个图标)并使用wget下载所需的文件 . 例如,要下载7-Zip类型:
wget https://www.7-zip.org/a/7z1805-x64.exe
现在,使用Cloud Shell用户主目录中的文件,您可以使用gsutil命令将其复制到Google Cloud Storage存储桶:
gsutil cp ./7z1805-x64.exe gs://your_bucket_name/
如果文件大于4.6 GB,您仍然可以执行此操作,但需要使用gcsfuse将存储桶挂载到Cloud Shell中:
在Cloud Shell用户主目录中创建目录
mkdir ~/mybucket
现在使用gcsfuse将您的存储桶挂载到该目录中:
gcsfuse bucket_name ~/mybucket
将当前目录更改为挂载点目录:
cd mybucket
(如果你想要有一些乐趣,请运行“df -h . ”以查看你在该安装点有多少空间)
现在使用wget将文件直接存入您的存储桶(使用10GB文件从网上获取示例):
wget https://speed.hetzner.de/10GB.bin
UPDATE 我刚刚发现了一种更简单的方法,它似乎适用于所有文件大小:
curl http://speedtest.tele2.net/10GB.zip | gsutil cp - gs://YOUR_BUCKET_NAME/10GB.zip
基本上卷曲将数据直接“流”到桶中 .
2 回答
Google Cloud 端存储仅直接接受数据 . 没有办法将URL传递给它并将其作为对象保存 .
但是,您没有理由不能自己构建此功能 . 例如,您可以设置一个或多个专用GCE实例,这些实例将加载URL,然后将其保存到GCS . 谷歌不收取网络进入GCE或从GCE进入区域内的GCS的费用,这有所帮助 .
只要下载量小于~4.6 GB,Google Cloud Shell就可以轻松完成此操作 . 启动Cloud Shell(在GCP中登录项目后,右上角的第一个图标)并使用wget下载所需的文件 . 例如,要下载7-Zip类型:
现在,使用Cloud Shell用户主目录中的文件,您可以使用gsutil命令将其复制到Google Cloud Storage存储桶:
如果文件大于4.6 GB,您仍然可以执行此操作,但需要使用gcsfuse将存储桶挂载到Cloud Shell中:
在Cloud Shell用户主目录中创建目录
现在使用gcsfuse将您的存储桶挂载到该目录中:
将当前目录更改为挂载点目录:
(如果你想要有一些乐趣,请运行“df -h . ”以查看你在该安装点有多少空间)
现在使用wget将文件直接存入您的存储桶(使用10GB文件从网上获取示例):
UPDATE 我刚刚发现了一种更简单的方法,它似乎适用于所有文件大小:
基本上卷曲将数据直接“流”到桶中 .