如何将Blob复制到存储桶中的特定文件夹?

时间:2018-10-15 22:08:25

标签: python google-cloud-platform google-cloud-storage google-api-python-client

我需要通过Python将Google的云存储中的某些文件从一个文件夹移动到另一个文件夹。浏览他们的文档,我似乎找不到任何东西来移动实际文件,我需要将文件复制到另一个目录,然后删除原始文件。

我能够找到copy_blob,但是,我看不到任何内容来指定文件夹。有没有办法指定我也要在其中复制文件的文件夹?还是有另一种方法可以将文件从一个文件夹移动到另一个文件夹?

1 个答案:

答案 0 :(得分:4)

Google Cloud Storage没有真正意义上的“文件夹”。如果您只是在同一存储桶中“移动”文件,则实际上您只是在更改映射到存储中blob的名称,并且可以使用rename_blob。例如:

>>> from google.cloud import storage
>>> storage_client = storage.Client()
>>> bucket = storage_client.get_bucket('YOUR_BUCKET_NAME')
>>> blob = bucket.get_blob('/path/to/folder/foo.txt')
>>> blob.name
'/path/to/folder/foo.txt'
>>> bucket.rename_blob(blob, '/new/location/foo.txt')
>>> list(bucket.list_blobs())
[<Blob: YOUR_BUCKET_NAME, b'/new/location/foo.txt'>]

如果要在存储桶之间“移动”文件,则需要使用copy_blob,因为实际上需要在存储桶之间传输数据。使用此功能时,name参数将是文件的完整路径,包括所有“文件夹”。