【发布时间】:2021-12-27 11:53:12
【问题描述】:
我有一个 Python 脚本,它对我的 GCS 存储桶的输入文件夹执行一些处理文件。处理完成后,我想将这些文件移动到同一个 GCS Bucket 中的另一个文件夹中。知道如何实现它。
【问题讨论】:
标签: python-3.x google-cloud-platform google-cloud-storage gsutil
我有一个 Python 脚本,它对我的 GCS 存储桶的输入文件夹执行一些处理文件。处理完成后,我想将这些文件移动到同一个 GCS Bucket 中的另一个文件夹中。知道如何实现它。
【问题讨论】:
标签: python-3.x google-cloud-platform google-cloud-storage gsutil
云存储桶中没有“文件夹”之类的东西。您只需要将blob文件复制到一个新的目标文件名,并删除前一个,如下:
import logging
from google.cloud import storage
STORAGE_BUCKET=""
def move_image_within_bucket(source_blob_name: str, origin_folder: str, destination_folder: str):
""" Move image file from one folder to another folder within same Storage bucket """
storage_client = storage.Client()
bucket = storage_client.bucket(STORAGE_BUCKET)
source_blob = bucket.get_blob(source_blob_name)
destination_blob_name = source_blob_name.replace(origin_folder, destination_folder, 1)
blob_copy = bucket.copy_blob(source_blob, bucket, new_name=destination_blob_name)
logging.info(f"Image {source_blob} moved from folder {origin_folder} to {destination_folder} within bucket {STORAGE_BUCKET}")
source_blob.delete()
# example : move_image_within_bucket(source_blob_name="dev/image.jpg", origin_folder="dev", destination_folder="prod")
【讨论】: