我正在尝试使用Java Storage Client从远程服务器读取文件行数
还尝试了“ gsutil cat gs:// {bucket_name} /file.txt | wc -l”
还有其他方法吗?
答案 0 :(得分:0)
不幸的是,无法使用Google Storage API来获取存储在存储桶中的对象数。最接近的方法是将BucketListOption
与pageSize = Long.MAX_VALUE
(here's方法)结合使用。
但是,通过命令行,您可以执行以下命令:
gsutil ls gs://bucket/** | wc -l
这将为您提供所需的计数。
答案 1 :(得分:0)
GCS 不提供计算对象中行数的内置方法。从根本上说,您将需要扫描文件以计算行数。在某些情况下,可能有比您在问题中建议的方式更好的方法:
您可以在 object metadata 中保存行数。这意味着您只需要进行一次计数,并且可以从元数据中检索它。如果您控制上传过程,您甚至可以在上传时执行此操作,这样您无需检索行即可获得计数。
您可以编写一个小的 Google Cloud Function 端点来执行此操作。这样做的优点是数据永远不会离开 GCP(如果设置正确,永远不会离开区域),因此速度更快,出口成本更低。