如何在不在本地下载的情况下将图像从公共数据库传输到Google Cloud Bucket

问题描述 投票:0回答:1

我有一个csv文件,有超过10,000个网址指向互联网上的图像。我想对它们执行一些机器学习任务。我正在使用Google Cloud Platform基础架构完成此任务。我的第一个任务是将所有这些图像从网址传输到GCP存储桶,以便我以后可以通过docker容器访问它们。

我不想先在本地下载它们然后上传它们,因为这只是太多的工作,而只是将它们直接传输到存储桶。我看过Storage Transfer Service,对于我的具体情况,我想,我将使用URL list。任何人都可以帮我弄清楚我下一步该怎么做。这甚至是一个可能的选择吗?如果是,我如何生成一个MD5,我的列表中的每个网址都提到了here,并获得每个网址的图像字节数?

google-cloud-platform google-cloud-storage md5
1个回答
2
投票

如您所述,Storage Transfer Service要求您为其提供每个文件的MD5。幸运的是,许多HTTP服务器可能会为您提供对象的MD5,而无需您下载它。发出HTTP HEAD请求可能会导致服务器在其响应中为您提供Content-MD5标头,该标头可能不是Storage Transfer服务所需的格式,但可以转换为该格式。

这里的缺点是Web服务器不一定会为您提供该信息。没有检查就没有办法知道。

值得考虑的另一个选择是设置一个或多个GCE实例并从那里运行脚本以将对象下载到GCE实例,然后将它们上传到GCS。这仍然需要“本地”下载它们,但本地不再意味着谷歌云的地方,这应该大大加快速度。您还可以将CSV文件拆分为10个文件,每个文件中包含1000个对象,并设置10个GCE实例来完成工作。

© www.soinside.com 2019 - 2024. All rights reserved.