【问题标题】:Creating/Uploading new file at Google Cloud Storage bucket using Python使用 Python 在 Google Cloud Storage 存储桶中创建/上传新文件
【发布时间】:2017-04-06 19:56:09
【问题描述】:

如何使用 Python 和可用的客户端库在 Google Cloud Storage 中创建新的空文件?

或者如何使用 blob 函数“upload_from_filename()”将新文件上传到选定的存储桶?要初始化 blob 对象,我们应该在云存储桶中已有文件,但我想创建一个新文件名,并从本地存储的文件中复制内容。我想用 python 来做这个。

提前致谢

【问题讨论】:

    标签: python google-cloud-storage


    【解决方案1】:

    首先你需要加载库

    import google.cloud.storage
    

    假设您创建了一个服务帐户并在某处加载了 JSON 文件,您需要创建一个客户端对象

    storage_client = google.cloud.storage.Client.from_service_account_json('JSON filepath')
    

    那么你需要提供创建一个bucket对象

    bucket = storage_client.get_bucket('bucket_name')
    

    现在定义存储桶中的路径和文件名

    d = 'path/name'
    

    blob 方法创建新文件,也是一个对象。

    d = bucket.blob(d)
    

    upload_from_string 方法添加文件的内容。还有其他方法可以让您执行不同的任务。

    d.upload_from_string('V')
    

    第一次准备好前几步需要的时间最长。

    祝你好运!

    【讨论】:

    • 第一次尝试就完美了
    • 如果我想上传文件列表怎么办?
    • 我一直在使用循环,一次上传一个文件。
    【解决方案2】:

    如果有人正在寻找同样的东西,这里就是解决方案。首先,您需要使用要在其中创建新 blob 的存储桶名称创建/初始化存储桶变量。之后,您无需调用 blob,而是使用 bucket.blob("filename") 创建 blob,如果给定文件名,则会创建一个新 blob桶里已经不存在了。然后您可以使用 blob.create_from_filename("filename_which_you want to copy"),这会将内容复制到之前创建的 blob 以获得更详细的解决方案,您可以在此处阅读 blob 文档:

    https://googlecloudplatform.github.io/google-cloud-python/stable/storage-blobs.html

    希望这会对某人有所帮助。以下是示例 python 代码:

    client=storage.Client();  
    bucket=client.get_bucket('your bucket name');  
    blob=bucket.blob('newfile you want to create')
    blob.upload_from_filename('localdirectory/filename.mp4')
    

    【讨论】:

    • 它生成:AttributeError: 'module' object has no attribute 'Client'
    • 嗨,杰克,抱歉回复晚了!您是否能够至少导入存储包(“从 google.cloud 导入存储”)?请分享有关代码的更多详细信息。你也可以在这里查看文档 -> cloud.google.com/storage/docs/reference/…
    猜你喜欢
    • 2015-02-15
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 2021-03-06
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    相关资源
    最近更新 更多