首页 文章

Google Cloud 存储 - 从网上下载文件

提问于
浏览
1

我想在我的下一个项目中使用Google Cloud 端存储 . 我的目标是跟踪各种网站并收集一些照片 . 至于,我阅读了gsutil的文档;我可以手动将文件下载到我的服务器,并使用gsutil上传谷歌 Cloud 存储 .

下载和上传文件会在我的服务器中产生如此多的流量 . 有没有办法让google Cloud 直接从http下载文件?

2 回答

  • 1

    Google Cloud 端存储仅直接接受数据 . 没有办法将URL传递给它并将其作为对象保存 .

    但是,您没有理由不能自己构建此功能 . 例如,您可以设置一个或多个专用GCE实例,这些实例将加载URL,然后将其保存到GCS . 谷歌不收取网络进入GCE或从GCE进入区域内的GCS的费用,这有所帮助 .

  • 2

    只要下载量小于~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
    

    基本上卷曲将数据直接“流”到桶中 .

相关问题