繁体   English   中英

使用python在谷歌云存储桶内创建文件夹

[英]Create Folders inside google cloud storage bucket using python

我正在尝试使用 python 客户端库在 Google Cloud 存储上创建一个包含 2 个空文件夹的新存储桶。

我参考了GCS的 python 客户端库 API ( https://google-cloud-python.readthedocs.io/en/latest/storage/client.html ) 并找到了create_bucket()方法,但我也想创建 2 个文件夹 - 其中包含“已处理”和“未处理”,但找不到创建文件夹的方法。 任何帮助,将不胜感激。

谢谢

GCS 有一个扁平的命名空间,即“文件夹”的概念不是内置到服务中的,而是由各种客户端实现的抽象。 例如,Cloud Storage Web UI (console.cloud.google.com/storage/browser) 和 gsutil 都使用以“/”结尾的对象名称来实现文件夹抽象。因此,您可以通过创建像您这样的对象来创建文件夹- bucket/abc/def/ 但这只会是了解/支持该命名约定的客户的文件夹。

def copyFilesInFolder(self, file_name, src_blob_name, destination_blob_name):
    """Copies a blob from one bucket to another with a new name."""
    # bucket_name = "your-bucket-name"
    # blob_name = "your-object-name"
    # destination_bucket_name = "destination-bucket-name"
    # destination_blob_name = "destination-object-name"

    # storage_client = storage.Client()

    srcBlob = src_blob_name + '/' + file_name
    destBlob = destination_blob_name + '/' + file_name
    source_blob = self.bucket.blob(srcBlob)
    destination_bucket = storage_client.bucket(destBlob)

    blob_copy = self.bucket.copy_blob(
        source_blob, self.bucket, destBlob
    )
    print(blob_copy)
    print(
        "File {} in bucket {} copied to blob {} in bucket {}.".format(
            file_name,
            src_blob_name,
            file_name,
            destination_blob_name,
        )
    )

    return True

在 GCP 中不存在直接创建文件夹的概念。 所以我们可以在新文件夹中保存一个新文件,这样即使目标文件夹不存在它也会被创建。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM