如何解决给定URI
仅在给定存储uri格式为gs://<bucket_name>/<blob_name>
的情况下,我想将文件上传到Google存储。
我知道可以使用类似的代码在Python中上传文件
def upload_file(filepath,bucket_name,blob_name):
client = storage.Client()
bucket = client.get_bucket(bucket_name)
blob = bucket.blob(blob_name)
blob.upload_from_filename(filepath)
但是我实际上更喜欢的是一个仅获取本地文件路径和google storage uri的函数,类似于gsutil的复制命令:gsutil cp <filepath> gs://<bucket_name>/<blob_name>
。所以,像这样:
def upload_file_to_uri(filepath,gs_uri):
pass
我是否必须编写一个regex命令来解析给定uri中的存储桶和blob名称,或者已经存在一个更优雅的解决方案?
解决方法
如果您使用python客户端库,则必须上传问题中提到的文件。不过,您可以执行以下操作
import subprocess
subprocess.call("gsutil -m cp gs://my-bucket-name/* /home/<username>/rawdata/",shell=True)
您可以在here上找到类似的答案。
,我不认为它当前存在于Python库中。您需要解析存储桶和Blob名称。
也就是说,欢迎您使用gsutil的实现。它受Apache许可。 https://github.com/GoogleCloudPlatform/gsutil/blob/c84f8487460596c1bf7f049bb31714262bf223ca/gslib/storage_url.py#L184
它可能比您需要的要复杂一些,因为它支持世代号,通配符和路径定界符,但它可以工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。