在给定URI的情况下,通过Python将文件上载到Google存储

在给定URI的情况下,通过Python将文件上载到Google存储,python,google-cloud-platform,google-cloud-storage,Python,Google Cloud Platform,Google Cloud Storage,我想上传一个文件到谷歌存储,只要给出存储uri,格式为gs:// 我知道可以使用类似于 def upload_文件(文件路径、bucket_名称、blob_名称): client=storage.client() bucket=client.get\u bucket(bucket\u名称) blob=bucket.blob(blob\u名称) blob.upload\u from\u文件名(文件路径) 但我实际上更喜欢的是一个只获取本地文件路径和google存储uri的函数,类似于gsutil

我想上传一个文件到谷歌存储,只要给出存储uri,格式为
gs://

我知道可以使用类似于

def upload_文件(文件路径、bucket_名称、blob_名称):
client=storage.client()
bucket=client.get\u bucket(bucket\u名称)
blob=bucket.blob(blob\u名称)
blob.upload\u from\u文件名(文件路径)
但我实际上更喜欢的是一个只获取本地文件路径和google存储uri的函数,类似于gsutil的copy命令:
gsutil cp gs://
。比如说:

def upload_file_to_uri(filepath,gs_uri):
通过

我是否必须编写一个regex命令来解析给定uri中的bucket和blob名称,或者已经有了一个更优雅的解决方案?

如果您使用python客户端库,那么有必要上传您在问题中提到的文件。不过,您可以执行以下操作

import subprocess
subprocess.call("gsutil -m cp gs://my-bucket-name/* /home/<username>/rawdata/", shell=True)
导入子流程
调用(“gsutil-mcpgs://my bucket name/*/home//rawdata/”,shell=True)

您可以在上找到类似的答案。

如果您使用python客户端库,则有必要上传问题中提到的文件。不过,您可以执行以下操作

import subprocess
subprocess.call("gsutil -m cp gs://my-bucket-name/* /home/<username>/rawdata/", shell=True)
导入子流程
调用(“gsutil-mcpgs://my bucket name/*/home//rawdata/”,shell=True)

您可以在上找到类似的答案。

我认为Python库中目前不存在类似的答案。您需要解析出bucket和blob名称

也就是说,欢迎您使用gsutil的实现。它在Apache许可下


它可能比您需要的稍微复杂一点,因为它支持代数值、通配符和路径分隔符,但它可以工作。

我认为Python库中目前不存在它。您需要解析出bucket和blob名称

也就是说,欢迎您使用gsutil的实现。它在Apache许可下


它可能比您需要的稍微复杂一些,因为它支持生成编号、通配符和路径分隔符,但它可以工作。

这只适用于Cloud Run和Compute engine/GKE。这只适用于Cloud Run和Compute engine/GKE。