2 回答
TA贡献1776条经验 获得超12个赞
smart_open现在支持 GCS 并支持即时解压。
import lzma
from smart_open import open, register_compressor
def _handle_xz(file_obj, mode):
return lzma.LZMAFile(filename=file_obj, mode=mode, format=lzma.FORMAT_XZ)
register_compressor('.xz', _handle_xz)
# stream from GCS
with open('gs://my_bucket/my_file.txt.xz') as fin:
for line in fin:
print(line)
# stream content *into* GCS (write mode):
with open('gs://my_bucket/my_file.txt.xz', 'wb') as fout:
fout.write(b'hello world')
TA贡献1848条经验 获得超6个赞
我multipart
对 vs.resumable
上传感到困惑。后者是“流媒体”所需要的——它实际上更像是上传缓冲流的块。
Multipart
上传是在同一个 API 调用中一次加载数据和自定义元数据。
虽然我非常喜欢GCSFS - Martin,他的主要贡献者非常敏感 - 但我最近发现了一个使用该google-resumable-media
库的替代方案。
GCSFS
建立在核心 http API 之上,而 Seth 的解决方案使用由 Google 维护的低级库,与 API 更改更加同步,其中包括指数备份。后者对于大/长流来说确实是必须的,因为连接可能会下降,即使在内部GCP
- 我们遇到了GCF
.
最后,我仍然相信Google Cloud Library是添加类似流的功能的正确位置,包括基本write
和read
. 它已经有了核心代码。
如果您也对核心库中的该功能感兴趣,请在此处竖起大拇指- 假设优先级基于此。
添加回答
举报