Google cloud storage 使用GN Java从Google云存储读取非常大的文件

Google cloud storage 使用GN Java从Google云存储读取非常大的文件,google-cloud-storage,cloud,blob,Google Cloud Storage,Cloud,Blob,我正在尝试从Google云存储桶读取一个非常大的文件(运行到GB-s)。我将其读作Blob,然后从Blob中打开一个InputStream "Blob blob = get_from_bucket("my-file"); ReadChannel channel = blob.reader(); InputStream str = Channels.newInputStream(channel); " 我的问题是,整个文件是一次性移动到Blob

我正在尝试从Google云存储桶读取一个非常大的文件(运行到GB-s)。我将其读作Blob,然后从Blob中打开一个InputStream

"Blob blob = get_from_bucket("my-file");
   ReadChannel channel = blob.reader();
   InputStream str = Channels.newInputStream(channel); "
我的问题是,整个文件是一次性移动到Blob对象还是分块移动?在前一种情况下,它可能会导致内存不足,对吗

是否有一种方法可以像处理FileInBustream一样从bucket中读取对象,这样我就可以读取文件,而不必考虑文件的大小?

您可以使用,但是,请小心:此transfert模式上没有强制执行CRC。某些位可能损坏,并且您可以处理有错误的数据


如果你处理音频或视频,这并不太重要。如果你处理大量的财务数据,我不推荐这种方法。

我尝试了下面的代码片段-->Path p=Path.of(URI.create(“我的文件路径在bucket中”);InputStream in=Files.newInputStream(p);InputStreamReader fr=新的InputStreamReader(in);------/但是,这会引发一个异常,称为“未安装gs的提供程序”。我想,这是因为spring boot应用程序的打包方式有一个错误。顺便说一下,我正在尝试从我的spring boot api控制器读取GCP bucket中的一个文件。您是否尝试使用GCP和spring云集成?否则,您必须根据流式API包装和编码您自己的阅读器: