首先是一些关于定价的背景信息:
Google 有 pretty good documentation 关于如何将数据提取到 GCS 中的信息。来自该指南:
今天,当您将数据移动到 Cloud Storage 时,不会产生入站流量费用。 gsutil 工具和 Storage Transfer Service 均免费提供。有关最新定价详情,请参阅 GCP 网络定价页面。
"network pricing page" 只是说:
[流量类型:入口] 价格:不收费,除非有负载均衡器等资源正在处理入口流量。对请求的响应算作出口并收费。
GCS pricing page 上有关于您使用 GCE 虚拟机写入 GCS 的想法的其他信息:
如果您在以下情况下使用其他 GCP 服务访问 Cloud Storage 存储分区中的数据,则无需支付网络费用:
- 您的存储桶和 GCP 服务位于同一个多区域或区域位置。例如,使用
asia-east1 Compute Engine 实例访问 asia-east1 存储桶中的数据。
来自later in that same page,还有关于预询价的信息:
A 类操作:storage.*.insert[1]
[1] 使用 JSON API 进行的简单、分段和可恢复上传均被视为一项 A 类操作。
The cost 用于 A 类操作是每 10,000 次操作,根据存储类型为 0.05 美元或 0.10 美元。我相信您只会执行 1 次 A 类操作(或最多,您上传的每个文件执行 1 次 A 类操作),所以这可能不会增加总体使用量。
现在回答您的问题:
对于您的用例,听起来您希望将 tarball 中的文件作为 GCS 中的单个文件(而不是将一个大 tarball 存储在 GCS 中的一个文件中)。第一步解压到某个地方,第二步使用gsutil cp复制到GCS。
除非您必须这样做(即现在保存 tarball 的机器上没有足够的空间),否则我不建议在上传到 GCE 之前将 tarball 复制到 GCE 中的中间 VM,原因有两个:
-
gsutil cp 已经为您处理了一堆烦人的边缘情况:并行上传、在出现网络故障时恢复上传、重试、校验和比较等。
- 使用任何 GCE 虚拟机都会增加整个复制操作的成本——磁盘成本加上虚拟机本身的成本。
如果您想先尝试使用风险较低的程序,请创建一个包含几兆字节数据和一些文件的小目录并使用gsutil cp 复制它,然后检查您为此支付了多少费用.从 GCS 定价页面:
每天都会产生费用,但 Cloud Storage 仅在结算期结束时才会向您收费。您可以在 Google Cloud Platform Console 的项目计费页面中查看未计费的使用情况。
因此,您只需等待一天即可查看您的账单金额。