Python apache_beam.io.gcp.gcsio.gcsbuffereder对象的下载位置

Python apache_beam.io.gcp.gcsio.gcsbuffereder对象的下载位置,python,google-cloud-dataflow,apache-beam,Python,Google Cloud Dataflow,Apache Beam,我正在为一个云数据流管道向工作人员推送视频。有人建议我直接使用beam来管理我的对象。我无法理解下载对象的最佳实践。我能看见教室 所以我们可以这样使用它: def read_file(element,local_path): with beam.io.gcp.gcsio.GcsIO().open(element, 'r') as f: 其中元素是从上一个波束步进读取的地面军事系统路径 检查可用的方法,downloader看起来像 f.downloader Download with 575

我正在为一个云数据流管道向工作人员推送视频。有人建议我直接使用beam来管理我的对象。我无法理解下载对象的最佳实践。我能看见教室

所以我们可以这样使用它:

def read_file(element,local_path):
  with beam.io.gcp.gcsio.GcsIO().open(element, 'r') as f:
其中元素是从上一个波束步进读取的地面军事系统路径

检查可用的方法,downloader看起来像

f.downloader
Download with 57507840/57507840 bytes transferred from url https://www.googleapis.com/storage/v1/b/api-project-773889352370-testing/o/Clips%2F00011.MTS?generation=1493431837327161&alt=media
此消息使它看起来像是已下载,它具有正确的文件大小(57mb)。但是它去了哪里?我想传递一个变量(local_path),以便后续进程可以处理该对象。该类似乎不接受路径目标,它不在当前工作目录/tmp/或下载文件夹中。在部署之前,我正在OSX上进行本地测试


我是否正确使用此工具?我知道流式视频字节可能更适合于大型视频,一旦我了解了基本功能,我们就会开始讨论这个问题。我将为opencv阅读的内存流(名为?)打开一个单独的问题。

虽然我将打开这个问题,但值得注意的是,gsutil是自动安装在dataflow worker环境中的,因此最简单的方法是使用子流程从shell下载所有GSUTL命令。请看这里,虽然我将继续回答这个问题,但值得注意的是,gsutil是自动安装在dataflow worker环境中的,因此最简单的方法是使用subprocess从shell下载所有gsutil命令来下载对象。看这里