使用Python在Google Cloud Storage存储桶中创建/上传新文件

Akh*_*ana 6 python google-cloud-storage

如何使用具有客户端库的Python使用Google Cloud Storage创建新的空文件?

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

提前致谢

Jie*_*Jie 6

首先,您需要加载库

import google.cloud.storage
Run Code Online (Sandbox Code Playgroud)

假设您已经创建了一个服务帐户并且在某个地方加载了JSON文件,则需要创建一个客户端对象

storage_client = google.cloud.storage.Client.from_service_account_json('JSON filepath')
Run Code Online (Sandbox Code Playgroud)

然后您需要提供创建存储桶对象

bucket = storage_client.get_bucket('bucket_name')
Run Code Online (Sandbox Code Playgroud)

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

d = 'path/name'
Run Code Online (Sandbox Code Playgroud)

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

d = bucket.blob(d)
Run Code Online (Sandbox Code Playgroud)

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

d.upload_from_string('V')
Run Code Online (Sandbox Code Playgroud)

最初的几个步骤花费的时间最长。

祝好运!


Akh*_*ana 5

如果有人正在寻找相同的东西,这里是解决方案。首先,您需要使用要在其中创建新 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')
Run Code Online (Sandbox Code Playgroud)